Chap18 스윙(SWING) Section 1 : 스윙 컴포넌트 Section 2 : 컴포넌트의 이벤트 처리

Slides:



Advertisements
Similar presentations
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Advertisements

명품 JAVA Programming 제 9 장 자바의 GUI, AWT와 Swing.
어서와 Java는 처음이지! 제12장 스윙 컴포넌트.
명품 JAVA Programming 제 11 장 스윙 컴포넌트와 이벤트 핸들링.
학습목표 이번장에서는 프로그램이 실행되는 환경이 다른 애플리케이션과 애플릿의 차이점을 학습하고, GUI 프로그램을 작성하기 위한 컴포넌트객체 생성과 배치 및  플랫폼(platform)에 따른 룩앤필(look and feel)에 대해서도 학습한다. 또한 컴포넌트에 어떤 동작(이벤트)이.
9장. 스윙 프로그래밍.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Chapter 10. AWT 이벤트.
Chap13 이벤트 처리 13.1 : 이벤트란? 13.2 : 자바의 이벤트 모델 13.3 : 이벤트 관련 컴포넌트
Chap07 상속 Section 1 : 상속의 개요 Section 2 : 멤버 변수의 상속
Java 16장. 스윙 public class SumTest {
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
최윤정 Java 프로그래밍 클래스 상속 최윤정
컴퓨터 프로그래밍 실습 #7 제 4 장 GUI 클래스 작성.
GUI 환경에서 작동하는 프로그램에 대하여 윈도우 프로그램의 작성 방법 그래픽과 이미지 디스플레이 방법 오디오 파일 재생 방법
명품 JAVA Programming.
Part 5 사용자 인터페이스 Chapter 14 : 그래피컬 사용자 인터페이스 Chapter 15 : 이벤트 처리
Chap14 스윙(SWING) 14.1 스윙 컴포넌트 14.2 컴포넌트의 이벤트 처리
프로그래머를 위한 Java 2 제8장 스윙(Swing)
제 4 장 클래스 작성 Lab 4- 2.
Chapter 13 GUI 프로그래밍 01 GUI 화면 구성 02 GUI 이벤트 처리 03 GUI 메뉴와 툴바 예제 모음 요약
어서와 Java는 처음이지! 제8장 그래픽 사용자 인터페이스.
18장 사용자 인터페이스 18.1 AWT(Abstract Window Toolkit) 18.2 컴포넌트의 이벤트 처리
19장 스윙과 이벤트 처리 Section 1 스윙 컴포넌트 Section 2 이미지 아이콘과 라벨
Chapter 12. Awt와 Swing Chapter 13. 배치 관리자 Chapter 14. 이벤트 관리자
Swing 컴포넌트 텍스트 컴포넌트 텍스트 필드 텍스트 영역 스크롤 페인 체크 박스 라디오 버튼.
Lesson 5. 레퍼런스 데이터형.
목 차 1. swing component 특징 및 관련 packages
forms 객체 입력상자 체크상자, 라디오 버튼 목록상자
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
5장. 참조 타입.
Chap08 다중 스레드 8.1 스레드 개요 8.2 Thread 클래스와 스레드 생명주기 8.3 스레드 생성과 사용
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
JAVA WINDOW PROGRAMMING
자바 5.0 프로그래밍.
Power Java 제14장 배치 관리자.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
그래픽 사용자 인터페이스와 사건처리.
자바 5.0 프로그래밍.
11장. 1차원 배열.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
13. 연산자 오버로딩.
7장 인터페이스와 추상 클래스.
JAVA Canvas Swing.
자바응용.
인터넷응용프로그래밍 JavaScript(Intro).
10장 tkinter로 GUI 만들기.
30강 JAVA 그래픽 JAVA GUI(Graphic User Interface)란? AWT 컴포넌트? Swing 컴포넌트?
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
Power Java 제11장 상속.
11.어댑터 뷰 제목. 11.어댑터 뷰 제목 리스트뷰와 그리드뷰 활용법을 배운다. 갤러리와 스피너의 사용법을 익힌다.
JA A V W. 06.
Mariadb JDBC PROGRAMMING2
CHAP 21. 전화, SMS, 주소록.
11. 어댑터뷰 제목. 11. 어댑터뷰 제목 리스트뷰와 그리드뷰 활용법을 배운다. 갤러리와 스피너의 사용법을 익힌다.
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
영상처리 실습 (OpenCV + MFC) Chonbuk National University A.I. Lab.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
Power Java 제14장 배치 관리자.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
6 객체.
BoardGame 보드게임 따라가기.
Presentation transcript:

Chap18 스윙(SWING) Section 1 : 스윙 컴포넌트 Section 2 : 컴포넌트의 이벤트 처리 Section 3 : 이미지 아이콘(ImageIcon)과 라벨(Label) Section 4 : 텍스트 필드(Text Field)와 텍스트 에리어(Text Area) Section 5 : 버튼(Button) Section 6 : 푸시 버튼 Section 7 : 체크 박스 Section 8 : 라디오 버튼 Section 9 : 콤보 박스 Section 10 : 리스트 Section 11 : 스크롤 바 Section 12 : 그룹 홀더(Tabbed Panes)

javax.swing.Jcomponent 1. 스윙 컴포넌트 javax.swing.* 패키지에서 SWING과 관련된 모든 컴포넌트들을 제공 javax.swing.Jcomponent : 스윙 컴포넌트의 최상위 클래스 스윙의 주요 컴포넌트 상속 관계 : 그림 18-2 참조 java.lang.Object java.awt.Component java.awt.Container javax.swing.Jcomponent 스윙의 모든 컴포넌트들 Jcomponent 클래스의 상속관계

JRadioButtonMenuItem 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 스윙 주요 컴포넌트의 상속관계

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

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

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

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

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에서 제공

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 객체에 문자열을 설정

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

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)

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

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

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로 설정

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

6. 푸시 버튼 예제 1 : JButtonDemo.java 예제 2 : JButtonTest.java

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를 참으로 설정하면 체크박스가 선택된 상태로 나타난다

7. 체크박스 예제 1 : JCheckBoxTest.java

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로 지정된 버튼을 추가한다.

8. 라디오 버튼 예제 1 : JRadioButtonTest.java

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

9. 콤보 박스 예제 1 : JComboBoxTest.java

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

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

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

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 필요한 경우에만 수직 스크롤 바 제공

11. 스크롤 바 예제 1 : JScrollPaneTest.java

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

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

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