THE JFC SWING A Guide to Constructing GUIs

  • Slides: 24
Download presentation
THE JFC SWING A Guide to Constructing GUIs (Introduction) Data Warehousing Lab. Cho Hye-Young

THE JFC SWING A Guide to Constructing GUIs (Introduction) Data Warehousing Lab. Cho Hye-Young

INDEX n Getting Started with Swing n Swing Features and Concepts n Using Swing

INDEX n Getting Started with Swing n Swing Features and Concepts n Using Swing Components Book & Reference phttp: //java. sun. com/docs/books/tutorial/uiswing/index. h tml p. The JFC Swing Tutorial A Guide to Constructing GUIs by Kathy Walrath & Mary Campione 2 DW Data Warehousing Lab.

스윙 컴포넌트들 § Top-Level Containers Applet Dialog § General-Purpose Containers Frame Panel § Special-Purpose

스윙 컴포넌트들 § Top-Level Containers Applet Dialog § General-Purpose Containers Frame Panel § Special-Purpose Containers Internal frame Split pane Tabbed pane Tool bar § Uneditable Information Displays Layered pane Label Root pane Progress bar Tool tip § Editable Displays of Formatted Information § Basic Controls Buttons Scroll pane Combo box List Color chooser File chooser Menu 5 Slider Text fields Table Text Tree DW Data Warehousing Lab.

1. JFC 와 스윙에 대해 n 스윙 API가 포함된 릴리즈는? p p 6 Java

1. JFC 와 스윙에 대해 n 스윙 API가 포함된 릴리즈는? p p 6 Java 2 SDK, Standard Edition, (J 2 SE) v 1. 4. JFC 1. 1(use JDK 1. 1) DW Data Warehousing Lab.

1. JFC 와 스윙에 대해 n 어떤 스윙 패키지를 써야 하는지? p JFC 1.

1. JFC 와 스윙에 대해 n 어떤 스윙 패키지를 써야 하는지? p JFC 1. 1 release (public packages): javax. accessibility javax. swing. border javax. swing. colorchooser javax. swing. event javax. swing. filechooser javax. swing. plaf. basic javax. swing. plaf. metal javax. swing. plaf. multi javax. swing. table javax. swing. text. html javax. swing. tree javax. swing. undo 7 p javax. swing. event(not always required) DW Data Warehousing Lab.

2. 스윙 프로그램의 컴파일과 실행 n 스윙 프로그램의 컴파일과 실행(Java 2 Platform) p Step

2. 스윙 프로그램의 컴파일과 실행 n 스윙 프로그램의 컴파일과 실행(Java 2 Platform) p Step l Java 2 platform 의 최신 release 설치 l 스윙 컴포넌트 들을 사용하는 프로그램 작성 l 프로그램 컴파일 Swing. Application. javac -deprecation Swing. Application. java l 프로그램 실행 ¤ Standard Look & Feel java Swing. Application ¤ nonstandard look and feel Solaris: java -classpath. : /home/me/lnfdir/newlnf. jar Swing. Application Win 32: java -classpath. ; C: javalnfdirnewlnf. jar Swing. Application 10 DW Data Warehousing Lab.

3. 스윙 애플릿의 실행 n Step p 브라우저에 적합한 자바 플러그인 또는 applet viewer

3. 스윙 애플릿의 실행 n Step p 브라우저에 적합한 자바 플러그인 또는 applet viewer 다운로드 (JDK 1. 1 applet viewer사용의 경우 스윙 JAR파일로드) p 브라우저로 html파일을 연다 l Hello. Swing. Applet. html ¤ 소스코드 : Hello. Swing. Applet. java ¤ Html 파일에 applet 끼워 넣는 코드 <APPLET CODE = "Hello. Swing. Applet. class" CODEBASE = "example-swing" "Hello. Swing. Applet. class" ARCHIVE = "applets. jar" WIDTH = 400 HEIGHT = 50 > <PARAM NAME = CODE VALUE = "Hello. Swing. Applet. class" > "Hello. Swing. Applet. class" <PARAM NAME = CODEBASE VALUE = "example-swing" > <PARAM NAME = ARCHIVE VALUE = "applets. jar" > <PARAM NAME="type" VALUE="application/x-java-applet; version=1. 1. 2"> </APPLET> 11 DW Data Warehousing Lab.

4. 스윙 애플리케이션의 코드 맛보기 n Swing. Application. java import javax. swing. *; import

4. 스윙 애플리케이션의 코드 맛보기 n Swing. Application. java import javax. swing. *; import java. awt. event. *; 스윙팩키지도입 레이블 설정 public class Swing. Application { private static String label. Prefix = "Number of button clicks: "; private int num. Clicks = 0; public Component create. Components() { final JLabel label = new JLabel(label. Prefix + "0 } public static void main(String[] args) { 외양선택 try { UIManager. set. Look. And. Feel( UIManager. get. Cross. Platform. Look. And. Feel. Class. Name()); } catch (Exception e) { } "); JButton button = new JButton("I'm a Swing button!"); button. set. Mnemonic(Key. Event. VK_I); button. add. Action. Listener(new Action. Listener() { public void action. Performed(Action. Event e) { num. Clicks++; 버튼설정 label. set. Text(label. Prefix + num. Clicks); } }); label. set. Label. For(button); JPanel pane = new JPanel(); pane. set. Border(Border. Factory. create. Empty. Border( 30, 10, 30) ); pane. set. Layout(new Grid. Layout(0, 1)); pane. add(button); pane. add(label); } return pane; } 12 컴포넌트추가 //Create the top-level container and add contents to it. JFrame frame = new JFrame("Swing. Application"); Swing. Application app = new Swing. Application(); Component contents = app. create. Components(); frame. get. Content. Pane(). add(contents, Border. Layout. CENTER); //Finish setting up the frame, and show it. frame. add. Window. Listener(new Window. Adapter() { public void window. Closing(Window. Event e) { System. exit(0); } 최상위컨테이너 설정하고 }); 보여주기 frame. pack(); frame. set. Visible(true); DW 이벤트처리 Data Warehousing Lab.

4. 스윙 애플리케이션의 코드 맛보기 n Swing. Application. java p 외양의 선택 l UIManager.

4. 스윙 애플리케이션의 코드 맛보기 n Swing. Application. java p 외양의 선택 l UIManager. set. Look. And. Feel( "com. sun. java. swing. plaf. windows. Windows. Look. And. F eel“ ); l set. Look. And. Feel arguments ¤ UIManager. get. Cross. Platform. Look. And. Feel. Class. Name() ¤ UIManager. get. System. Look. And. Feel. Class. Name() ¤ "javax. swing. plaf. metal. Metal. Look. And. Feel“ ¤ "com. sun. java. swing. plaf. windows. Windows. Look. And. Feel“ ¤ "com. sun. java. swing. plaf. motif. Motif. Look. And. Feel“ ¤ "javax. swing. plaf. mac. Mac. Look. And. Feel" p 스레드 관련 문제 p 보조적 기술들의 지원 JButton button = new JButton("I'm a Swing button!"); l label. set. Label. For(button); label = new JLabel(label. Prefix + "0 "); label. set. Text(label. Prefix + num. Clicks); JFrame frame = new JFrame("Swing. Application"); 13 DW Data Warehousing Lab.

5. 컴포넌트와 컨테이너의 계통적 구조 n Swing. Application. java p 스윙컴포넌트 l 프레임 또는

5. 컴포넌트와 컨테이너의 계통적 구조 n Swing. Application. java p 스윙컴포넌트 l 프레임 또는 메인 윈도우(Jframe) l 패널(Jpane) l 버튼(Jbutton) l 레이블(Jlabel) [containment hierarchy] 15 DW Data Warehousing Lab.

6. 레이아웃 관리 n 레이아웃 관리 p 컴포넌트들의 크기와 위치를 결정하는 과정 n 레이아웃

6. 레이아웃 관리 n 레이아웃 관리 p 컴포넌트들의 크기와 위치를 결정하는 과정 n 레이아웃 관리자 p 컨테이너에 담긴 컴포넌트들에 대해 레이아웃 관리를 수행하 는 객체 n 레이아웃 관리자 설정 p JPanel pane = new JPanel(); pane. set. Layout(new Border. Layout()); p 절대위치방식: 레이아웃 속성을 null 로 지정 n 컴포넌트에 대한 정보제공 p 크기: set. Minimum. Size, set. Preferred. Size, set. Maximum. Size get. Minimum. Size, get. Preferred. Size, get. Maximum. Size p 정렬: set. Alignment. X , set. Alignment. Y get. Alignment. X , get. Alignment. Y 16 DW Data Warehousing Lab.

6. 레이아웃 관리 n 다양한 레이아웃 관리자 1. Border. Layout 2. Box. Layout 3.

6. 레이아웃 관리 n 다양한 레이아웃 관리자 1. Border. Layout 2. Box. Layout 3. Card. Layout 4. Flow. Layout 5. Grid. Layout 6. Grid. Bag. Layout 17 DW Data Warehousing Lab.

7. 이벤트 처리 n 이벤트 처리부 구현 p 이벤트 처리부 (event handler) 클래스의 요소

7. 이벤트 처리 n 이벤트 처리부 구현 p 이벤트 처리부 (event handler) 클래스의 요소 리스너 인터페이스 구현(Implement) 또는 다른 클래스 확장 (expands)할 것인지 지정 코드 public class My. Class implements Action. Listener { l 인스턴스 등록 코드 some. Component. add. Action. Listener(instance. Of. My. Class); l l 리스너 인터페이스의 메서드들을 구현하는 코드 public void action. Performed(Action. Event e) {. . . //code that reacts to the action. . . } Action. Event button ------------> action listener n 스레드와 이벤트처리 p 20 이벤트 처리 코드는 하나의 스레드 즉, event dispatching thread 안에서 실행된다. DW Data Warehousing Lab.