본문 바로가기

반응형

언어

(188)
자바 이벤트 리스너 작성 방법, 명품자바프로그래밍10장 * 이벤트 리스너 클래스를 작성하는 3가지 방법 1) 독립 클래스로 이벤트 리스너 작성 이벤트 리스너 클래스를 독립적으로 작성하는 방법으로서 가장 일반적이다. 그러나 이 방법은 MyActionListener가 다른 클래스의 멤버에 접근하기 쉽지 않은 단점이 있다. Action 이벤트 리스너 MyActionListener를 독립된 클래스로 작성 리스너에서 IndepListenerClass의 멤버에 대한 접근이 어려움 MyActionListener는 독립된 자바 소스 파일 (MyActionListener.java)로도 작성 가능 import javax.swing.*; import java.awt.event.*; import java.awt.*; public calss IndepClassListener ext..
자바 이벤트 리스너, 명품자바프로그래밍10장 * 자바의 AWT와 스윙 패키지는 사용자가 이벤트 리스너를 작성할 수 있도록 이벤트 리스너 인터페이스(interface)를 제공한다. 자바는 사용자가 바로 사용할 수 있는 이벤트 리스너를 제공하지 않기 때문에, 스스로 필요한 이벤트 리스너를 작성하여야 한다. 리스너 인터페이스의 추상 메소드를 모두 구현하여 이벤트 리스너를 완성하여야 한다. interface ActionListener{ public void actionPerformed(ActionEvent e); // Action 이벤트 발생 처리 } interface MouseListener{ public void mousePressed(MouseEvent e);// 마우스 버튼이 눌러지는 순간 public void mouseReleased(MouseE..
자바 이벤트 처리, 명품자바프로그래밍10장 * 이벤트 기반 프로그래밍은 이벤트의 발생에 의해 프로그램 실행 흐름이 결정되는 방식의 프로그래밍 패러다임이다. 이벤트는 키 입력, 마우스 클릭, 마우스 드래그 등 사용자의 액션이나 센서 등 외부 장치로부터의 입력, 네트워크를 통한 다른 컴퓨터로부터의 데이터 수신, 다른 스레드나 프로그램으로부터의 메시지 수신 등에 의해 발생한다. * 이벤트 기반 응용프로그램은 각 이벤트를 처리하는 이벤트 리스너(event listener) 혹은 이벤트 핸들러를 보유하며 이벤트가 발생할 때마다 해당 이벤트 리스너가 실행된다. 사용자가 스윙 기반의 GUI 응용프로그램상에서 버튼 클릭등의 GUI 컴포넌트에 입력 행위를 하면 이벤트가 발생한다. * new 버튼이 클릭되어 처리되는 과정을 통해 이벤트가 발생하는 과정 1) 사용자..
자바 배치관리자 없는 컨테이너, 명품자바프로그래밍9장 * 모든 컨테이너는 배치관리자를 반드시 가지고, 배치관리자가 컴포넌트의 위치와 크기를 결정하도록 하는 것이 자바 GUI의 기본 정신이다. 배치관리자는 컴포넌트를 절대적인 위치에 배치하지 않고, 각 컴포넌트를 다른 컴포넌트의 위치에 대해 상대적인 위치에 배치한다. 그러므로 컨테이너의 크기가 변하면 컴포넌트의 위치도 함께 변한다. 배치관리자를 사용하면 컴포넌트의 위치에 대해서 신경 쓰지 않아도 되지만, 현실에서는 자바의 배치관리자들로는 구성하기 어려운 사용자 인터페이스를 만들어야 하는 경우가 종종 발생한다. ex.1) 컴포넌트의 크기나 위치를 개발자 임의로 결정하고자 하는 경우 ex.2) 게임 프로그램과 같이 시간이 마우스/키보드의 입력에 따라 컴포넌트의 위치와 크기가 수시로 변하는 경우 ex.3) 여러 컴..
자바 GridLayout 배치관리자, 명품자바프로그램9장 * GridLayout은 컨테이너 공간을 사각형의 그리드(격자) 모양으로 분할하며 그리드의 각 셀에는 오직 하나의 컴포넌트를 배치하는 방법이다. GridLayout은 컨테이너에 추가되는 컴포넌트들을 순서대로 셀에 배치한다. container.setLayout(new GridLayout(4,3)); // 4x3 분할로 컴포넌트 배치 container.add(new JButton("1")); // 상단 왼쪽 첫 번째 셀에 버튼 배치 container.add(new JButton("2")); //그 옆 셀에 버튼 배치 * GridLayout의 생성자와 속성 생성자: GrindLayout(int rows, int cols, int hGap, int vGap) rows * cols의 그리드로 컨테이너 공간을 분할..
자바 BorderLayout 배치관리자, 명품자바프로그래밍 9장 * BorderLayout 배치관리자는 컨테이너 공간을 동(EAST), 서(WEST), 남(SOUTH), 북(NORTH), 중앙(CENTER)의 5개 영역으로 분할하여 배치한다. * 다른 배치관리자와는 달리 BorderLayout 배치관리자를 가진 컨테이너에 컴포넌트를 삽입하기 위해서는 add()메소드를 사용하여 컴포넌트의 위치를 명확히 정해주어야 한다. void add(Component comp, int index); // comp 컴포넌트를 index위치에 삽입한다. // Example container.setLayout(new BorderLayout()); container.add(new JButton("div"), BorderLayout.WEST); container.add(new JButton(..
자바 FlowLayout 배치관리자, 명품자바프로그래밍9장 * add() 메소드를 사용하여 FlowLayout 배치관리자는 가진 컨테이너에 컴포넌트를 부착할 수 있다. container.setLayout(new FlowLayout()); container.add(new JButton("add")); container.add(new JButton("sub")); container.add(new JButton("mul")); container.add(new JButton("div")); container.add(new JButton("Calculate")); * FlowLayout 배치관리자는 컴포넌트를 컨테이너 공간 내에서 왼쪽에서 오른쪽으로 배치하고, 더 이상 오른쪽에 공간이 없으면 다시 아래로 내려와서 왼쪽에서 오른쪽으로 배치한다. * FlowLayout 배치..
자바 컨테이너와 배치(1), 명품자바프로그래밍 9장 * 컨테이너에는 여러 개의 컴포넌트를 부착할 수 있다. 배치관리자(Layout Manager)가 컨테이너에 부착되는 컴포넌트들의 위치와 크기를 결정한다. 배치관리자는 컨테이너에 속한 것으로 컨테이너마다 하나씩 존재한다. * AWT나 스윙의 컨테이너의 특징 1) 하나의 컨테이너는 반드시 하나의 배치관리자를 가진다. 2) 배치관리자는 컨테이너에 컴포넌트가 들어오는 시점에 컴포넌트의 위치와 크기를 결정한다. 3) 배치관리자는 컨테이너의 크기가 변경되면 컨테이너 내부의 모든 컴포넌트들의 위치와 크기를 재조정한다. * 자바에는 대표적인 4가지 배치관리자가 있다. 배치관리자는 java.awt 패키지에 존재한다. import java.awt.*; 1) FlowLayout 컨테이너에 컨포넌트가 들어오면 순서대로 왼쪽에..

반응형