Chap14 스윙(SWING) 14.1 스윙 컴포넌트 14.2 컴포넌트의 이벤트 처리

Slides:



Advertisements
Similar presentations
제 8 장 그래픽 사용자 인터페이스 어서와 Java 는 처음이지 !. 그래픽 사용자 인터페이스 (Graphical User Interface, 간단히 GUI) 는 컴포넌트들로 구성된다.
Advertisements

자바 5.0 프로그래밍.
명품 JAVA Programming 제 9 장 자바의 GUI, AWT와 Swing.
6장 java.applet.Applet의 네트워크 메쏘드들
명품 JAVA Essential.
어서와 Java는 처음이지! 제12장 스윙 컴포넌트.
명품 JAVA Programming 제 11 장 스윙 컴포넌트와 이벤트 핸들링.
- 계산기 GUI 구성하기 - 조원: 박강국 오정은 이귀식 김도윤 안영진.
제 12일 그래픽사용자인터페이스 (Graphic User Interface)
그래픽 프로그래밍 (GUI - Graphic User Interface)
9장. 스윙 프로그래밍.
10장. 이벤트 처리와 그래픽 프로그래밍.
GUI 이벤트, 이벤트 리스너와 이벤트 소스 그림 그리기 내부 클래스
제7장 이벤트 프로그래밍.
Java 16장. 스윙 public class SumTest {
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
7장 배열 ③.
레이아웃 관리자 스윙 구성요소 비트박스 프로그램
명품 JAVA Programming 제 13 장 스레드와 멀티태스킹.
컴퓨터 프로그래밍 실습 #7 제 4 장 GUI 클래스 작성.
GUI 환경에서 작동하는 프로그램에 대하여 윈도우 프로그램의 작성 방법 그래픽과 이미지 디스플레이 방법 오디오 파일 재생 방법
CHAP 4. 이벤트 처리.
명품 JAVA Programming.
프로그래머를 위한 Java 2 제8장 스윙(Swing)
윤 홍 란 제3장 클래스와 객체의 사용-2 윤 홍 란
9 표준 액션.
Kim heesang JDBC Programming 2 Kim heesang
제 4 장 클래스 작성 Lab 4- 2.
DB와 WEB 연동(1) [2-Tier] Java Applet 이용
9장 AWT(1).
Lesson 12. 사용자 인터페이스(AWT) - 1
4장 컴포넌트 (I) org.kwis.msp.lwc.
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
명품 JAVA Programming 제 12 장 그래픽.
Chapter 13 GUI 프로그래밍 01 GUI 화면 구성 02 GUI 이벤트 처리 03 GUI 메뉴와 툴바 예제 모음 요약
어서와 Java는 처음이지! 제8장 그래픽 사용자 인터페이스.
Choi Younghwan CSE HUFS
java.awt 패키지의 단순 컴포넌트와 이벤트 처리
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
19장 스윙과 이벤트 처리 Section 1 스윙 컴포넌트 Section 2 이미지 아이콘과 라벨
Chapter 12. Awt와 Swing Chapter 13. 배치 관리자 Chapter 14. 이벤트 관리자
Swing 컴포넌트 텍스트 컴포넌트 텍스트 필드 텍스트 영역 스크롤 페인 체크 박스 라디오 버튼.
이벤트 프로그래밍 안혜선.
목 차 1. swing component 특징 및 관련 packages
Swing 컴포넌트, 컨테이너 레이아웃 매니저 그리고 이벤트를 기반으로 하는 시스템 독립적인 GUI 프로그래밍을 위한 API.
Java Seminar Chapter 4.
10장 예외 Lab 10-2.
5장 조건과 반복 ③.
소프트웨어설계 UML 학기.
10장 다중 스레드 10.1 스레드 개요 10.2 Thread 클래스 10.3 스레드 생성
메모장 구동.
9장 AWT(1).
명품 JAVA Programming 제 15 장 애플릿과 멀티미디어.
CHAP 6. 이벤트 처리.
제 9주 이벤트 처리 그래픽프로그래밍1 제 9주 강의 목표
그래픽 사용자 인터페이스와 사건처리.
4장 Random Number 프로그래밍 언어 실험실 석사 3학기 박중기
JAVA Canvas Swing.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
Chap10 다중 스레드 Section 1 : 스레드 개요 Section 2 : Thread 클래스와 스레드 생명주기
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
4장 - PHP의 표현식과 흐름 제어-.
JAVA WINDOW PROGRAMMING
Mariadb JDBC PROGRAMMING2
제 4 장 클래스 작성 Lab 4- 2.
Outline 클래스의 해부 캡슐화(Encapsulation) 메쏘드의 해부 그래픽 객체(Graphical Objects)
자바 5.0 프로그래밍.
11장 다형성과 추상 클래스, 인터페이스 Section 1 객체의 형 변환 Section 2 연산자 Section 3 다형성
Chap18 스윙(SWING) Section 1 : 스윙 컴포넌트 Section 2 : 컴포넌트의 이벤트 처리
Presentation transcript:

Chap14 스윙(SWING) 14.1 스윙 컴포넌트 14.2 컴포넌트의 이벤트 처리 14.3 이미지 아이콘(ImageIcon)과 라벨(Label) 14.4 텍스트 필드(Text Field)와 텍스트 에리어(Text Area) 14.5 버튼(Button) 14.6 푸시 버튼 14.7 체크 박스 14.8 라디오 버튼 14.9 콤보 박스 14.10 리스트 14.11 스크롤 바 14.12 그룹 홀더(Tabbed Panes)

javax.swing.Jcomponent 14.1 스윙 컴포넌트 javax.swing.* 패키지에서 SWING과 관련된 모든 컴포넌트들을 제공 javax.swing.Jcomponent : 스윙 컴포넌트의 최상위 클래스 java.lang.Object java.awt.Component java.awt.Container javax.swing.Jcomponent 스윙의 모든 컴포넌트들 Jcomponent 클래스의 상속관계

JRadioButtonMenuItem 14.1 스윙 컴포넌트 주요 스윙 컴포넌트의 상속관계 JComponent AbstractButton JComboBox JLabel JMenuBar JPanel JScrollPane JTabbedPane JTextComponent JTable JTree Component JMenuItem JButton JToggleButton JCheckBoxMenuItem JMenu JRadioButtonMenuItem JCheckBox JRadioButton JTextArea JTextField Container Panel Applet JApplet

14.1 스윙 컴포넌트 스윙 관련 주요 클래스의 기능 클래스명 주요 기능 AbstractButton 버튼과 연관된 클래스들의 상위 추상 클래스 ButtonGroup 버튼을 그룹화하기 위한 클래스 ImageIcon 이미지를 아이콘으로 캡슐화하여 제공하는 클래스 Japplet 애플릿(applet)의 스윙 버전으로 Applet 클래스로부터 상속된 클래스 Jbutton 스윙에서 사용하는 버튼 클래스 JCheckBox 스윙에서 사용하는 체크 박스 클래스 JCheckBoxMenuItem 스윙의 메뉴에서 사용하는 체크박스 클래스 JComboBox 풀다운 리스트를 보여줄 수 있는 콤보 박스 클래스 Jlabel 스윙에서 사용하는 라벨 클래스 Jmenu 스윙의 메뉴에서 사용하는 메뉴 클래스 JMenuBar 스윙의 메뉴 바를 만들기 위한 클래스 JMenuItem 스윙에서 사용하는 메뉴관련 클래스의 상위 클래스 Jpanel 스윙에서 사용하는 판넬 클래스

14.1 스윙 컴포넌트 스윙 관련 주요 클래스의 기능(계속) 클래스명 주요기능 JRadioButton 스윙에서 사용하는 라디오버튼 클래스 JRadioButtonMenuItem 스윙의 메뉴에서 사용하는 라디오버튼 클래스 JScrollPane 스크롤 윈도우를 나타내는 클래스 JTabbedPane 그룹을 홀더 형태로 제공하는 윈도우를 나타내는 클래스 Jtable 데이터를 행과 열로 나타내는 클래스 JTextArea 스윙에서 사용하는 텍스트 에리어 클래스 JTextComponent 스윙에서 사용하는 텍스트 관련 클래스들의 상위 클래스 JTextFeild 스윙에서 사용하는 텍스트 필드 클래스 JToggleButton JCheckBox 클래스와 JRadioButton 클래스의 상위 클래스 Jtree 트리 형태를 나타내는 클래스

14.2 컴포넌트의 이벤트 처리 GUI 컴포넌트에서 발생하는 전형적인 이벤트 처리 형태(예 : 버튼) (1) 이벤트와 연관된 인터페이스를 사용하여 클래스 생성 public class MyButton implements ActionListener (2) GUI 구축을 위한 컴포넌트 객체를 생성 JButton mybutton = new JButton("선택"); (3) 이벤트를 받아들인 컴포넌트 객체(여기서는 버튼 객체)에 리스너를 등록 mybutton.addActionListener(this);

14.2 컴포넌트의 이벤트 처리 (4) add() 메소드를 사용하여 컴포넌트를 애플릿 또는 컨테이너에 추가 add(mybutton); (5) 이벤트를 처리할 이벤트 처리 루틴 작성(예 : action 이벤트) public void actionPerformed(ActionEvent ae) { label.setText(ae.getActionCommand()) ; } actionPerformed() : ActionListener 인터페이스에 선언된 메소드([표 17-9]) getActionCommand() : ActionEvent 클래스에서 제공되는 메소드이다([표17.3] 참조). 예제 : ButtonEventTest.java

14.3 이미지 아이콘과 라벨 ImageIcon 클래스 : 이미지를 아이콘화하여 제공하는 클래스 생성자 ImageIcon(String filname) ImageIcon(URL url) ImageIcon 클래스의 주요 메소드 메소드 이름 메소드 설명 int getIconHeight() 아이콘의 높이를 픽셀 값으로 반환 int getIconWidth() 아이콘의 폭을 픽셀 값으로 반환 void paintIcon(Component comp, Graphics g, int x, int y) Graphics 객체 g의 x, y의 위치에 아이콘을 그린다. 아이콘을 그리는 동작에 대한 부가적인 정보는 comp에서 제공

14.3 이미지 아이콘과 라벨 JLabel 클래스 : 문자열이나 아이콘을 제공할 수 있는 클래스 생성자 JLabel(Icon i) JLabel(String s) JLabel(String s, Icon i, int align) JLabel 클래스의 주요 메소드 메소드 이름 메소드 설명 Icon getIcon() JLabel 객체가 가지고 있는 Icon 객체를 반환 String getText() JLabel 객체가 가지고 있는 문자열을 문자열 객체로 반환 void setIcon(Icon i) JLabel 객체에 아이콘을 설정 void setText(String s) JLabel 객체에 문자열을 설정

14.3 이미지 아이콘과 라벨 예제 : JLabelDemo.java

14.4 텍스트 필드(Text Field)와 텍스트 에리어(Text Area) JTextField 클래스와 JTextArea 클래스 JTextField 생성자 JTextField() JTextField(int cols) JTextField(Sting str, int cols) JTextField(Sting str) JTextArea 생성자 JTextArea() JTextArea(String str) JTextArea(int rows, int cols) JTextArea(String str, int rows, int cols) JTextArea(String str, int rows, int cols, int scrollbars)

14.4 텍스트 필드(Text Field)와 텍스트 에리어(Text Area) 예제 : JTFandJTA.java

14.5 버튼(Button) 스윙의 버튼은 AWT 버튼보다 다양한 기능을 제공 스윙의 버튼들은 AbstractButton의 하위 클래스 AbstractButton 클래스 : 버튼의 동작을 제어할 수 있는 다양한 메소드 제공 AbstractButton 클래스의 주요 메소드 메소드 이름 메소드 설명 String getActionCommand() 버튼이 실행한 명령을 반환 void setActionCommand(String s) 버튼에 대해 새로운 실행 명령을 s로 설정 String getText() 버튼의 텍스트(버튼의 이름으로 지정) 반환 void setText(String text) 버튼의 텍스트를 text로 설정 Icon getIcon() 버튼의 묵시적 아이콘을 반환

14.5 버튼(Button) AbstractButton 클래스의 주요 메소드-계속 메소드 이름 메소드 설명 void setIcon(Icon icon) 버튼의 묵시적 아이콘을 icon으로 설정 Icon getPressedIcon() 버튼이 눌려졌을때 나타낼 아이콘을 반환 void setPressedIcon(Icon icon) 버튼이 눌려졌을때 나타낼 아이콘을 icon으로 설정 Icon getRolloverIcon() 버튼위로 마우스가 지나갈 때 나타낼 아이콘을 반환 void setRolloverIcon(Icon icon) 버튼위로 마우스가 지나갈 때 나타낼 아이콘을 icon으로 설정 Boolean isSelected() 버튼의 상태(선택:true, 비선택:false)를 반환 void setSelected(Boolean b) 버튼의 선택 상태를 b로 설정

14.6 푸시 버튼 스윙은 버튼의 기능을 Jbutton 클래스로 제공 Jbutton 클래스의 생성자 JButton(Icon i) JButton(Sting s) JButton(String s, Icon i)

14.6 푸시 버튼 예제 : JButtonDemo.java 예제 : JButtonTest.java

14.7 체크박스 스윙은 체크박스의 기능을 JCheckBox 클래스로 제공 JCheckBox 클래스의 생성자 JCheckBox(Icon i) JCheckBox(Icon i, boolean state) JCheckBox(String s) JCheckBox(String s, boolean state) JCheckBox(String s, Icon i) JCheckBox(String s, Icon i, boolean state) JCheckBox 클래스의 메소드 메소드 이름 메소드 설명 void setSelected(boolean state) state를 참으로 설정하면 체크박스가 선택된 상태로 나타난다

14.7 체크박스 예제 : JCheckBoxTest.java

14.8 라디오 버튼 스윙은 라디오 버튼의 기능을 JRadiobutton 클래스로 제공 JRadiobutton 클래스의 생성자 JRadioButton(Icon i) JRadioButton(Icon i, boolean state) JRadioButton(String s) JRadioButton(String s, boolean state) JRadioButton(String s, Icon i) JRadioButton(String s, Icon i, boolean state) ButtonGroup 클래스 : 버튼을 그룹으로 묶는다 메소드 이름 메소드 설명 void add(AbstractButton ab) 그룹에 ad로 지정된 버튼을 추가한다.

14.8 라디오 버튼 예제 : JRadioButtonTest.java

14.9 콤보 박스 JComboBox 클래스 : 텍스트 필드와 풀다운 리스트를 조합한 형태 생성자 JComboBox(Vector v) v : 콤보 박스를 초기화 시키는 Vector 객체 JComboBox 클래스의 메소드 메소드 이름 메소드 설명 void addItem(Object obj) 콤보 박스에 한 항목을 추가

14.9 콤보 박스 예제 : JComboBoxTest.java

14.10 리스트(Lists) 리스트 컴포넌트는 콤보 박스의 기능과 같지만, 리스트 중에서 다수개를 선택할 수 있는 기능을 추가로 제공 생성자 JList() JList(Object[] items) items는리스트를 생성할 배열을 의미한다.

14.10 리스트(Lists) JList 클래스의 주요 메소드 메소드 이름 메소드 설명 int getSelectedIndex() 리스트 중에서 첫 번째 선택된 아이템의 인덱스를 반환 void setSelectedIndex(int index) index로 지정된 아이템을 선택 int[] getSelectedIndices() 리스트 중에서 선택된 모든 아이템의 인덱스를 배열로 반환 void setSelectedIndices(int[] indices) indices 배열에서 지정된 아이템을 모두 선택 Object getSelectedValue() 리스트 중에서 첫 번째 선택된 아이템을 Object 객체로 반환 Object[] getSelectedValues() 리스트에서 선택된 모든 아이템을 Object 객체의 배열로 반환(인덱스 순서)

14.10 리스트(Lists) 예제 : JListTest.java

14.11 스크롤 바 JScrollPane 클래스 : 스크롤 바의 기능을 제공 생성자 JScrollPane(Component comp) JScrollPane(int vsb, int hsb) JScrollPane(Component comp, int vsb, int hsb) comp : 스크롤 바가 추가될 컴포넌트 vsb와 hsb : 수직, 수평 스크롤 바를 설정하기 위해 사용되는 상수 HORIZONTAL_SCROLLBAR_ALWAYS 항상 수평 스크롤 바를 제공 HORIZONTAL_SCROLLBAR_AS_NEEDED 필요한 경우(판넬의 크기를 넘어서 는 경우)에만 수직 스크롤 바 제공 VERTICAL_SCROLLBAR_ALWAYS 항상 수직 스크롤 바를 제공 VERTICAL_SCROLLBARAS_NEEDED 필요한 경우에만 수직 스크롤 바 제공

14.11 스크롤 바 예제 : JScrollPaneTest.java

14.12 그룹 홀더(Tabbed Panes) JTabbedPane 클래스 일종의 메뉴처럼 사용될 수 있는 그룹 홀더 여러 개의 그룹(판넬)을 구성하여 사용하며, 한 순간에는 하나의 홀더만 선택할 수 있다 그룹 홀더 객체를 생성하기 위해서는 묵시적인 생성자를 사용 그룹 홀더에 각각의 그룹들을 추가하기 위해서 addTab() 메소드를 이용 void addTab(String str, Component comp) str : 홀더의 제목 comp : Component 객체로서 폴더의 내용을 가지고 있는 객체 각각의 그룹 홀더를 생성하기 위해서 JPanel 클래스를 사용

14.12 그룹 홀더(Tabbed Panes) 그룹 홀더를 사용하기 위한 과정 JTabbedPane 클래스를 이용하여 그룹 홀더 객체를 생성 그룹 홀더에 추가할 각각의 홀더 객체를 JPanel 클래스를 이용하여 작성 생성된 JPanel 객체를 JTabbedPane 객체에 추가(addTab() 메소드 이용) 모든 홀더가 완성될 때 까지 1-3번을 반복 완성된 그룹 홀더를 프레임이나 애플릿에 추가

14.12 그룹 홀더(Tabbed Panes) 예제 : JTabbedPaneTest.java