본문 바로가기

반응형

전체 글

(188)
자바 Swing JCheckBox, 버튼 컴포넌트, 명품자바프로그래밍11장 * JCheckBox는 선택(selected)과 비선택(deselected)의 두가지 상태만 가지는 체크박스 컴포넌트이다. JCheckBox는 JToggleButton을 상속받아 선택/비선택 두 상태를 오가는 것이므로 일종의 토글버튼이다. JCheckBox는 체크박스 문자열과 체크박스 이미지로 구성된다. 생성자: (비선택 상태가 디폴트이다.) 1) JCheckBox() 문자열이나 이미지가 없는 빈 체크박스 생성. 비선택 상태로 초기화 2) JCheckBox(Icon image) image 이미지만을 가진 체크박스 생성 3) JCheckBox(Icon image, boolean selected) image 이미지만을 가진 체크박스 생성. selected가 true면 선택 상태로 초기화 4) JCheckBo..
자바 Swing JButton, 버튼 컴포넌트, 명품자바프로그래밍11장 * JButton은 버튼 모양의 컴포너트를 생성하는 데 이용된다. 버튼을 마우스로 클릭하거나 키로 선택하면 Action 이벤트가 발생한다. 생성자: 1) JButton() 문자열이나 이미지가 없는 빈 버튼 생성 2) JButton(Icon image) 이미지만을 가진 버튼 생성 3) JButton(String text) 문자열만을 가진 버튼 생성 JButton btn = new JButton("hello"); 4) JButton(String text, Icon image) 문자열과 이미지를 모두 가진 버튼 생성 * JButton은 사용자의 버튼 조작에 대한 시각적 효과를 극대화하기 위해 마우스 접근에 따라 3개의 서로 다른 버튼 이미지를 출력한다. 1) normalIcon 버튼이 보통 상태에 있을 때 출..
자바 Swing JLabel, 레이블 컴포넌트, 명품자바프로그래밍11장 * JLabel은 화면에 문자열과 이미지를 출력할 때 사용되는 컴포넌트이다. 생성자: 1) JLabel() 문자열이나 이미지 정보가 없는 빈 레이블 컴포넌트 생성 2) JLabel(Icon image) 이미지만을 가진 레이블 컴포넌트 생성 이미지를 가진 레이블 컴포넌트를 생성하기 위해서는 먼저 ImageIcon 클래스를 이용하여 이미지 파일로부터 이미지 객체를 생성하여야 한다. JLabel에 담을 수 있는 이미지는 png, jpg, gif의 세 가지 형식뿐이며 해당 이미지는 선택된 폴더에 있어야 한다. ImageIcon image = new ImageIcon("images/sunset.jpg"); JLabel imageLabel = new JLabel(image); 3) JLabel(String text..
자바 스윙 컴포넌트, swing component, 명품자바프로그래밍11장 * 스윙 컴포넌트의 이름은 모두 J로 시작된다. 그리고 모든 스윙 컴포넌트들은 반드시 JComponent를 상속받는다. 그러므로 JComponent에는 스윙 컴포넌트들의 공통적인 속성과 메소드가 들어 있다. * JComponent는 추상 클래스이며 모든 스윙 컴포넌트들이 상속받는 많은 공통 메소드와 상수들을 구현하고 있다. 추상 클래스 : 1) 실체클래스들의 공통적인 부분 (변수, 메소드)를 추출해서 선언한 클래스 2) 실체성이 없고 구체적이지 않으므로 추상클래스는 객체를 생성할 수 없다. 3) 추상클래스와 실체클래스는 상속관계이다. * 컴포넌트의 모양과 관련된 메소드 void setForeground(Color) // 전경색 설정(글씨) void setBackground(Color) // 배경색 설정 ..
자바 Mouse 이벤트, 명품자바프로그래밍10장 * Mouse 이벤트는 사용자의 마우스 조작에 따라 총 7가지 경우에 발생한다. 이 중에서 5가지의 경우는 MouseListener의 메소드가 호출되고, 나머지 2가지 경우는 MouseMotionListener의 메소드가 호출된다. 모든 스윙 컴포넌트가 Mouse 이벤트를 받을 수 있다. Mouse 이벤트가 발생하면 MouseEvent 객체가 생성되며 리스너의 메소드의 인자로 전달된다. Mouse 이벤트가 발생하는 경우 리스너의 메소드 리스너 마우스가 컴포넌트 위에 올라갈 때 void mouseEntered(MouseEvent e) MouseListener 마우스가 컴포넌트에서 내려올 때 void mouseExited(MouseEvent e) MouseListener 마우스 버튼이 눌러졌을 때 void ..
명품자바프로그래밍 10장, 자바의 이벤트 처리 요약 * AWT나 스윙 등 자바의 GUI 프로그래밍은 이벤트 기반 프로그래밍이다. * 이벤트 기반 프로그래밍은 이벤트의 발생에 의해 프로그램 실행 흐름이 결정되는 방식으로 프로그래밍 패러다임이다. * 이벤트는 키 입력, 마우스 클릭, 마우스 드래그 등의 사용자 액션이나, 센서 등 외부 장치로부터의 입력, 네트워크상의 다른 컴퓨터로부터의 데이터 송수신, 혹은 다른 스레드나 프로그램으로부터의 메시지 송수신 등에 의해 발생한다. * 이벤트 소스란 이벤트를 발생시킨 컴포넌트이다. * 이벤트 리스너란 이벤트 핸들러와 동일한 의미로 사용되며 이벤트를 처리하는 객체이다. * 자바에서 다양한 이벤트 리스너 인터페이스를 제공하며, 개발자는 이벤트 리스너를 만들기 위해 이벤트 리스너 인터페이스의 모든 멤버를 반드시 구현하여야 ..
자바 KeyEvent & KeyListener, focus, 명품자바프로그래밍10장 * Key 이벤트는 사용자가 키를 입력할 때 발생하는 이벤트이다. 모든 컴포넌트가 Key 이벤트를 받을 수 있다. 다만 조건이 하나 있다. 응용프로그램 내에 포커스(focus)를 가진 컴포넌트가 키 입력을 독점하기 때문에 현재 포커스를 가진 컴포넌트에만 key 이벤트가 발생한다. 만일 버튼을 누르기 위해 키를 입력하더라도 그 버튼이 포커스를 가지고 있지 않다면 Key 이벤트가 발생하지 않는다. 어떤 컴포넌트에게 키를 입력하고 한다면 키나 마우스 클릭을 통해 포커스를 그 컴포넌트에게 이동시켜야 한다. Component component; component.requestFocus(); // 응용 프로그램에서 강제로 임의의 컴포넌트에 포커스를 주기 위한 방법 * setFocusable() 메소드는 true를 ..
자바 어댑터 클래스(Adapter), 명품자바프로그래밍10장 * 리스너 인터페이스를 상속받아 이벤트 리스너를 구현할 때 리스너 인터페이스의 메소드를 모두 구현하여야 하는 부담이 있다. 이런 부담을 줄이기 위해 자바의 JDK는 이벤트 리스너 인터페이스를 미리 구현해 놓은 어댑터 클래스(Adapter)를 제공한다. 어댑터 클래스는 리스너 인터페이스의 모든 메소드가 단순 리턴되도록 구현되어 있다. 어탭터는 java.awt.event와 javax.swing.event 패키지에 구현되어 있다. class MouseAdapter implements MouseListener, MouseMotionListener, MouseWheelListener{ public void mousePressed(MouseEvent e) {} public void mouseReleased(Mous..

반응형