PowerPoint 프레젠테이션

Similar documents
PowerPoint 프레젠테이션

9장.key

11장.key

gnu-lee-oop-kor-lec10-1-chap10

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - 04-UDP Programming.ppt

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63230C0E520BDBAC0AE20C4C4C6F7B3CDC6AE203128B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

public class FlowLayoutPractice extends JFrame { public FlowLayoutPractice() { super("flowlayout Practice"); this. Container contentpane = getcontentp

No Slide Title

10장.key

제8장 자바 GUI 프로그래밍 II

<4D F736F F F696E74202D20C1A63233C0E520B1D7B7A1C7C820C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A63138C0E520C0CCBAA5C6AE20C3B3B8AE28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

오버라이딩 (Overriding)

Microsoft PowerPoint - 14주차 강의자료

Java Programing Environment

Microsoft PowerPoint - EEL2 Lecture10 -Swing and Event Handling.pptx

Microsoft PowerPoint - [JAVA프로그래밍]9장GUI

Microsoft PowerPoint - Java7.pptx

자바GUI실전프로그래밍2_장대원.PDF

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt

PowerPoint 프레젠테이션

Microsoft PowerPoint - java1-lecture11.ppt [호환 모드]

강의자료

Microsoft PowerPoint - ÀÚ¹Ù08Àå-2.ppt

슬라이드 1

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

No Slide Title

PowerPoint Presentation

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 08.다형성

Microsoft PowerPoint - Java-03.pptx

PowerPoint 프레젠테이션

PowerPoint Presentation

PowerPoint 프레젠테이션

Microsoft PowerPoint - 06-Chapter09-Event.ppt

09-interface.key

(Microsoft PowerPoint - java2-lecture6.ppt [\310\243\310\257 \270\360\265\345])

gnu-lee-oop-kor-lec06-3-chap7

PowerPoint Presentation

Chap12

Cluster management software

11-GUI.key

12-file.key

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

PowerPoint Presentation

JTable과 MVC(Model-View-Controller) 구조 - 모델-뷰-컨트롤러구조는데이터의저장과접근에대한제공은모델이담당하고, 화면표시는뷰, 이벤트의처리는컨트롤러가하도록각역할을구분한구조이다. 즉, 역할의분담을통하여상호간의영향을최소화하고각요소의독립성을보장하여독자

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

모든스윙컴포넌트에는텍스트옆에이미지를추가로표시할수있다. ImageIcon image = new ImageIcon("image.gif"); JLabel label = new JLabel(" 이미지레이블 "); label.seticon(image);

DB 에데이터저장을위한입력창설계 - JLabel, JTextField, JButton 을이용한입력창설계 - 2 -

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

05-class.key

Design Issues

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

제11장 프로세스와 쓰레드

PowerPoint Template

Microsoft PowerPoint - java2-lecture6.ppt [호환 모드]

JUNIT 실습및발표

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint 자바-AWT컴포넌트(Ch8).pptx

Microsoft PowerPoint - java2-lecture5.ppt [호환 모드]

(Microsoft PowerPoint - LZVNQBAJWGTC.ppt [\310\243\310\257 \270\360\265\345])

Cluster management software

슬라이드 1

PowerPoint 프레젠테이션

PowerPoint Presentation

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

JMF1_심빈구.PDF

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

연습문제이론홀수정답

10 이벤트 처리와 그래픽 프로그래밍.key

Microsoft PowerPoint - Lect04.pptx

PowerPoint 프레젠테이션

JMF3_심빈구.PDF

슬라이드 1

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Network Programming

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

PowerPoint Presentation

Microsoft Word - java18-1-final-answer.doc

중간고사

rmi_박준용_final.PDF

ch09

10-Java Applet

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

쉽게

비긴쿡-자바 00앞부속


Microsoft PowerPoint - 2강

01-OOPConcepts(2).PDF

Transcription:

명품 JAVA Programming 1 제 14 장고급스윙컴포넌트

메뉴만들기 2 메뉴만들기에필요한스윙컴포넌트 JMenuBar 메뉴바의기능을하는컴포넌트 JMenu 파일, 편집등하나의메뉴기능을하는컴포넌트 JMenuItem 파일메뉴내에저장등의세부기능을하는컴포넌트 JMenu 컴포넌트 JMenuBar 컴포넌트 separator JMenuItem 컴포넌트

메뉴만드는과정 3 JMenuBar 컴포넌트 JMenuBar 컴포넌트 JMenuBar 컴포넌트 JMenuBar 컴포넌트 add add JMenuItem 컴포넌트 JMenu 컴포넌트 JMenu 컴포넌트 JMenu 컴포넌트 JMenu 컴포넌트 (1) JMenuBar 컴포넌트생성 (2) JMenu 컴포넌트를생성하여 JMenuBar 에붙인다. (3) JMenuItem 컴포넌트를생성하여 JMenu 에붙인다. (3 ) 여러개의메뉴와메뉴아이템을생성한다. 타이틀바 (4) JMenuBar 컴포넌트를 JFrame 에붙인다. (1) (2) (3) (4) JMenuBar mb = new JMenuBar(); JMenu filemenu = new JMenu("File"); mb.add(filemenu); filemenu.add(new JMenuItem("New")); filemenu.add(new JMenuItem("Open")); filemenu.addseparator(); filemenu.add(new JMenuItem("Save")); filemenu.add(new JMenuItem("SaveAs")); frame.setjmenubar(mb);

예제 14-1 : 메뉴만들기 import javax.swing.*; import java.awt.*; public class MenuEx extends JFrame { MenuEx() { settitle("menu 만들기예제 "); setdefaultcloseoperation(jframe.exit_on_close); createmenu(); setsize(250,200); setvisible(true); void createmenu() { JMenuBar mb = new JMenuBar(); JMenu filemenu = new JMenu("File"); filemenu.add(new JMenuItem("New")); filemenu.add(new JMenuItem("Open")); filemenu.addseparator(); filemenu.add(new JMenuItem("Save")); filemenu.add(new JMenuItem("SaveAs")); mb.add(filemenu); 4 mb.add(new JMenu("Edit")); mb.add(new JMenu("Source")); mb.add(new JMenu("Project")); mb.add(new JMenu("Run")); this.setjmenubar(mb); public static void main(string [] args) { new MenuEx();

메뉴에 Action 이벤트달기 5 ActionListener 이용 각 JMenuItem 컴포넌트에 Action 이벤트리스너설정 메뉴아이템이선택되었을때 Action 이벤트리스너호출 메뉴아이템에 ActionListener 를다는예 JMenuItem item = new JMenuItem("Color"); item.addactionlistener(new ColorActionListener()); // 메뉴아이템에 Action 리스너설정 filemenu.add(item); class ColorActionListener implements ActionListener { public void actionperformed(actionevent e) {... // 사용자가 Color 메뉴아이템을선택하는경우처리할작업구현...

예제 14-2 : 메뉴에 ActionListener 달기 6 import javax.swing.*; import java.awt.event.*; import java.awt.*; public class MenuActionEventEx extends JFrame { Container contentpane; JLabel label = new JLabel("Hello"); MenuActionEventEx() { settitle("menu 만들기예제 "); setdefaultcloseoperation(jframe.exit_on_close); contentpane = getcontentpane(); label.sethorizontalalignment(swingconstants.center); contentpane.add(label, BorderLayout.CENTER); createmenu(); setsize(250,200); setvisible(true); void createmenu() { JMenuBar mb = new JMenuBar(); JMenuItem [] menuitem = new JMenuItem [4]; String[] itemtitle = {"Color", "Font", "Top", "Bottom"; JMenu filemenu = new JMenu("Text"); for(int i=0; i<menuitem.length; i++) { menuitem[i] = new JMenuItem(itemTitle[i]); menuitem[i].addactionlistener(new MenuActionListener()); filemenu.add(menuitem[i]); mb.add(filemenu); this.setjmenubar(mb); class MenuActionListener implements ActionListener { public void actionperformed(actionevent e) { String cmd = e.getactioncommand(); if(cmd.equals("color")) label.setforeground(color.blue); else if(cmd.equals("font")) label.setfont(new Font("Ravie", Font.ITALIC, 30)); else if(cmd.equals("top")) label.setverticalalignment(swingconstants.top); else label.setverticalalignment(swingconstants.bottom); public static void main(string [] args) { new MenuActionEventEx();

예제실행 : 메뉴에 ActionListener 달기 7 초기상태 Color 메뉴아이템선택 Font 메뉴아이템선택 Top 메뉴아이템선택 Bottom 메뉴아이템선택

툴바 8 JToolBar 툴바를구현한컴포넌트 여러컴포넌트를담을수있는컨테이너 툴바의모양 한행혹은한열로만표현 기능 버튼이나이미지등모든컴포넌트를부착하여이들을메뉴처럼사용 툴바가부착되는위치 툴바는 BorderLayout 배치관리자를가진컨테이너에만부착 상 (NORTH), 하 (SOUTH), 좌 (WEST), 우 (EAST) 측의모서리중선택부착 사용자의드래그에의해위의 4 가지위치에이동부착가능 사용자의드래그에의해독립적인다이얼로그형태로떨어져서존재할수있음 사용자의드래그에의한이동이불가능하게할수있음 JButton JToolBar 컴포넌트 툴바의핸들 separator JLabel JTextField JComboBox

툴바만들기와제어 9 툴바만드는과정 1. JToolBar 객체생성 2. 컴포넌트를 JToolBar 컴포넌트에삽입 JToolBar bar = new JToolBar("Kitae Menu"); bar.add(new JButton("New")); // 버튼삽입 bar.addseparator(); // 분리공간삽입 bar.add(new JTextField("text field")); // 텍스트필드삽입 3. JToolBar 컴포넌트를컨테이너에배치 컨테이너는 BorderLayout 배치관리자 툴바제어 툴바생성자 JToolBar() JToolBar(String title) 툴바가윈도우에서떨어져나와독립적으로존재할때툴바의타이틀로 title 문자열설정 툴바드래그못하게고정하는방법 JToolBar.setFloatable(boolean b) b 가 true 이면드래그하여이동가능한툴바, false 이면툴바의핸들이없어지며드래그불가능 ( 이동불가능 ) 툴바에 separator 삽입 JToolBar.addSeparator() // 컨테이너의 NORTH 에툴바를삽입한다. container.add(bar, BorderLayout.NORTH);

예제 14-3 : 툴바만들기예 툴바의이름 초기컨텐트팬의 NORTH 에부착된툴바 핸들을드래그하여 SOUTH 로이동 import javax.swing.*; import java.awt.*; public class ToolBarEx extends JFrame { Container contentpane; ToolBarEx() { settitle(" 툴바만들기예제 "); setdefaultcloseoperation(jframe.exit_on_close); contentpane = getcontentpane(); createtoolbar(); setsize(400,200); setvisible(true); void createtoolbar() { JToolBar toolbar = new JToolBar("Kitae Menu"); bar.setbackground(color.light_gray); toolbar.add(new JButton("New")); toolbar.add(new JButton(new ImageIcon("images/open.jpg"))); toolbar.addseparator(); toolbar.add(new JButton(new ImageIcon("images/save.jpg"))); toolbar.add(new JLabel("search")); toolbar.add(new JTextField("text field")); JComboBox combo = new JComboBox(); combo.additem("java"); combo.additem("c#"); combo.additem("c"); combo.additem("c++"); toolbaradd(combo); contentpane.add(toolbar, BorderLayout.NORTH); 10 핸들을드래그하여임의의위치로이동 public static void main(string [] args) { new ToolBarEx();

툴팁 11 툴팁 스윙컴포넌트를설명하는팁문구 팁문구는문자열만가능 컴포넌트위에마우스를올리면잠깐나타났다가사라짐 툴팁 툴팁생성 1. JToolTip 클래스이용 ( 복잡하므로권하지않음 ) 2. JComponent.setToolTipText(String msg) 이용 : 권장 // 버튼에툴팁을다는예 JButton b = new JButton("open"); b.settooltiptext(" 클릭하면파일을엽니다 ");

예제 14-4 : 툴팁달기 import javax.swing.*; import java.awt.*; public class ToolTipEx extends JFrame { Container contentpane; ToolTipEx() { settitle(" 툴팁예제 "); setdefaultcloseoperation(jframe.exit_on_close); contentpane = getcontentpane(); createtoolbar(); setsize(400,200); setvisible(true); void createtoolbar() { JToolBar bar = new JToolBar("Kitae Menu"); bar.setbackground(color.light_gray); JButton newbtn = new JButton("New"); newbtn.settooltiptext(" 파일을생성합니다."); bar.add(newbtn); JButton openbtn = new JButton(new ImageIcon("images/open.jpg")); openbtn.settooltiptext(" 파일을엽니다."); bar.add(openbtn); bar.addseparator(); JButton savebtn = new JButton(new ImageIcon("images/save.jpg")); savebtn.settooltiptext(" 파일을저장합니다."); bar.add(savebtn); bar.add(new JLabel("search")); JTextField tf = new JTextField("text field"); tf.settooltiptext(" 찾고자하는문자열을입력하세요 "); bar.add(tf); contentpane.add(bar, BorderLayout.NORTH); 12 public static void main(string [] args) { new ToolTipEx();

툴팁활성화및툴팁지연시간제어 13 ToolTipManager 클래스이용 툴팁제어기능은모든툴팁에일괄적용 툴팁매니저객체생성 ToolTipManager m = ToolTipManager.sharedInstance(); 툴팁활성화 / 비활성화 m.setenabled(false); // 툴팁이보이지않게함 툴팁이나타나는최초지연시간제어 m.setinitialdelay(1000) // 마우스가올라온후 1000 ms 후에툴팁출력 툴팁이켜져있는지연시간제어 m.setdismissdelay(1000) // 툴팁이켜져있는지속시간을 1000ms 로설정

예제 14-5 : 툴팁지연시간제어 import javax.swing.*; import java.awt.*; 마우스를올리자마자툴팁이나타나고, 10 초간지속된다. public class ToolTipDelayEx extends JFrame { Container contentpane; ToolTipDelayEx() { settitle(" 툴팁지연시간제어예제 "); setdefaultcloseoperation(jframe.exit_on_close); contentpane = getcontentpane(); contentpane.setlayout(new FlowLayout()); JLabel cherrylabel = new JLabel(new ImageIcon("images/cherry.jpg")); cherrylabel.settooltiptext(" 체리이미지어때요 "); JLabel applelabel = new JLabel(new ImageIcon("images/apple.jpg")); applelabel.settooltiptext(" 사과이미지어때요 "); contentpane.add(cherrylabel); contentpane.add(applelabel); ToolTipManager m = ToolTipManager.sharedInstance(); m.setinitialdelay(0); m.setdismissdelay(10000); setsize(400,200); setvisible(true); 14 public static void main(string [] args) { new ToolTipDelayEx();

다이얼로그만들기 15 다이얼로그란? 사용자로부터입력을받기위한대화상자 JDialog 스윙에서다이얼로그를만들기위한슈퍼클래스 최상위컨테이너 (top-level container) 다른컨테이너에속할필요없이화면에출력가능한컨테이너 300x300 크기의다이얼로그를만드는간단한코드 JDialog dialog = new JDialog(); dialog.settitle(" 나의다이얼로그 "); dialog.add(new JButton("click!")); dialog.setsize(200,200); dialog.setvisible(true);

예제 14-6 : JDialog 를상속받아다이얼로그만들기 import java.awt.*; import java.awt.event.*; import javax.swing.*; class MyDialog extends JDialog { JTextField tf = new JTextField(10); JButton okbutton = new JButton("OK"); public MyDialog(JFrame frame, String title) { super(frame,title); setlayout(new FlowLayout()); add(tf); add(okbutton); setsize(200, 100); okbutton.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { setvisible(false); ); public class DialogEx extends JFrame{ setdefaultcloseoperation(jframe.exit_on_close); MyDialog dialog = new MyDialog(this, "Test Dialog"); public DialogEx() { super("dialogex 예제프레임 "); JButton btn = new JButton("Show Dialog"); btn.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { dialog.setvisible(true); ); getcontentpane().add(btn); setsize(250,200); setvisible(true); public static void main(string[] args) { new DialogEx(); 버튼을선택하면 Test Dialog 다이얼로그가생성된다. 다이얼로그의타이틀 16 MyDialog 로만든다이얼로그

모달다이얼로그와모달리스다이얼로그 17 모달 (modal) 다이얼로그 사용자입력을독점하는다이얼로그 닫기전에는다른창에서작업을전혀할수없는다이얼로그 생성방법 JDialog(Frame owner, String title, boolean modal) 생성자에서 modal 을 true 값으로지정 모달리스다이얼로그 다른창과독립적으로작동하는다이얼로그

예제 14-7: 모달다이얼로그로부터사용자의입력값알아내기 import java.awt.*; import java.awt.event.*; import javax.swing.*; class MyModalDialog extends JDialog { JTextField tf = new JTextField(10); JButton okbutton = new JButton("OK"); public MyModalDialog(JFrame frame, String title) { super(frame,title, true); // 모달다이얼로그로설정 setlayout(new FlowLayout()); add(tf); add(okbutton); setsize(200, 100); okbutton.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { setvisible(false); ); String getinput() { if(tf.gettext().length() == 0) return null; else return tf.gettext(); public class DialogEx2 extends JFrame { MyModalDialog dialog = new MyModalDialog(this, "Test Modal Dialog"); public DialogEx2() { super("dialogex2 예제프레임 "); setdefaultcloseoperation(jframe.exit_on_close); JButton btn = new JButton("Show Modal Dialog"); btn.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { dialog.setvisible(true); // 모달다이얼로그이므로 setvisible() 메소드는 // 다이얼로그가닫힐때까지리턴하지않는다. String text = dialog.getinput(); if(text == null) return; JButton btn = (JButton)e.getSource(); btn.settext(text); ); getcontentpane().add(btn); setsize(250,200); setvisible(true); public static void main(string[] args) { new DialogEx2(); 18

예제실행 19 버튼을선택하면 Test Modal Dialog 다이얼로그가생성된다. 사용자가 Press Me!! 라고입력한후 OK 버튼을누르면 Show Modal Dialog 버튼의문자열이변경된다.

팝업다이얼로그, JOptionPane 20 JOptionPane 간단하고유용한팝업다이얼로그지원 static 의타입의간단한메소드이용. 간단히다이얼로그출력가능 입력다이얼로그 - 한줄을입력받는다이얼로그 String JOptionPane.showInputDialog(String msg) msg : 다이얼로그의객체 리턴값 : 사용자가입력한문자열 확인다이얼로그 사용자로부터 Yes/No 응답을입력받는다이얼로그 int JOptionPane.showConfirmDialog(Component parentcomponent, Object msg, String title, int optiontype) parentcomponent는다이얼로그가출력되는영역의범위로서프레임. null 이면화면전체의중앙에출력 msg : 다이얼로그에출력될객체 title : 다이얼로그의타이틀문자열 optiontype : 다이얼로그의종류지정 - YES_ON_OPTION, YES_NO_CANCEL_OPTION, OK_CANCEL_OPTION 리턴값 : 사용자가선택한옵션 - YES_OPTION, NO_OPTION, CANCEL_OPTION, OK_OPTION, CLOSED_OPTION 메시지다이얼로그 단순메시지를출력하는다이얼로그 void JOptionPane.showMessageDialog(Component parentcomponent, Object msg, String title, int messagetype) parentcomponent, msg, title 은 showconfirmdialog() 메소드와동일 messagetype - ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGGE, QUSTION_MESSAGE, PLAIN_MESSAGE

JOptionPane 팝업다이얼로그와코드샘플 String name = JOptionPane.showInputDialog(" 이름을입력하세요."); // name 에 Java Kim 리턴 // 사용자가입력없이창을닫으면 null 리턴 옵션 (JOptionPane.YES_NO_OPTION) int result = JOptionPane.showConfirmDialog(null, " 계속할것입니까?", "Confirm", JOptionPane.YES_NO_OPTION); if(result == JOptionPane.CLOSED_OPTION) { // 사용자가 " 예 " 나 " 아니오 " 의선택없이다이얼로그창을닫은경우 else if(result == JOptionPane.YES_OPTION) { // 사용자가 " 예 " 를선택한경우 else { // 사용자가 " 아니오 " 를선택한경우 JOptionPane.showMessageDialog(null, " 조심하세요 ", "Message", JOptionPane.ERROR_MESSAGE); 21

예제 14-8 : JOptionPane을사용한팝업다이얼로그 inputbtn.addactionlistener(new ActionListener() { 작성 public void actionperformed(actionevent e) { import javax.swing.*; import java.awt.event.*; import java.awt.*; public class OptionPaneEx extends JFrame { Container contentpane; OptionPaneEx() { settitle(" 옵션팬예제 "); setdefaultcloseoperation(jframe.exit_on_close); contentpane = getcontentpane(); setsize(250,200); contentpane.add(new MyPanel(), BorderLayout.NORTH); setvisible(true); class MyPanel extends Panel { JButton inputbtn = new JButton("Input Name"); JTextField tf = new JTextField(10); JButton confirmbtn = new JButton("Confirm"); JButton messagebtn = new JButton("Message"); MyPanel() { setbackground(color.light_gray); add(inputbtn); add(confirmbtn); add(messagebtn); add(tf); ); String name = JOptionPane.showInputDialog(" 이름을입력하세요."); if(name!= null) tf.settext(name); confirmbtn.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { int result = JOptionPane.showConfirmDialog(null, " 계속할것입니까?", "Confirm", JOptionPane.YES_NO_OPTION); if(result == JOptionPane.CLOSED_OPTION) tf.settext("just Closed without Selection"); else if(result == JOptionPane.YES_OPTION) tf.settext("yes"); else tf.settext("no"); ); messagebtn.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { JOptionPane.showMessageDialog(null, " 조심하세요 ", "Message", JOptionPane.ERROR_MESSAGE); ); 22 public static void main(string [] args) { new OptionPaneEx();

예제실행 초기화면 Input Name 버튼을누르는경우입력다이얼로그생성 "Java Kim" 을입력하고확인버튼을누르면텍스트필드창에출력 Confirm 버튼을누르면확인다이얼로그생성 " 예 " 버튼을누르면텍스트필드창에 "Yes" 출력 Message 버튼을누르면메시지다이얼로그생성 " 확인 " 버튼을누르면다이얼로그종료 23

파일다이얼로그 24 JFileChooser 파일시스템의탐색기와같은기능을하는다이얼로그 사용자에게파일이나디렉터리를쉽게선택하도록하는기능 다이얼로그종류 파일열기다이얼로그 (File Open Dialog) 파일저장다이얼로그 (File Save Dialog) 주의사항 파일다이얼로그에서사용자가파일을선택하는행위란? 사용자가선택한파일이름을얻기위함 파일을읽거나쓰는행위가아님 다이얼로그닫기란? 다이얼로그가화면에서보이지않게됨. JFileChooser 객체가없어지거나사용할수없게것이아님 showopendialog() 메소드를호출하면다시화면에출력하고재사용가능 다이얼로그가닫힌후 JFileChooser 객체로부터사용자가입력한정보를알아낼수있음

JFileChooser 파일다이얼로그, 코드샘플 파일열기다이얼로그생성과정 1.JFileChooser 객체생성 JFileChooser chooser = new JFileChooser(); 2. 파일필터객체생성 FileNameExtensionFilter filter = new FileNameExtensionFilter( "JPG & GIF", "jpg", "gif"); 3. JFileChooser 에파일필터설정 생략가능 chooser.setfilefilter(filter); 4. 열기다이얼로그출력 int ret = chooser.showopendialog(null); 5. 사용자가선택한파일이름알아내기 if(ret == JFileChooser.APPROVE_OPTION) { String pathname = chooser.getselectedfile().getpath(); String filename = chooser.getselectedfile().getname(); 파일저장다이얼로그생성과정 int ret = chooser.showsavedialog(null); 25

예제 14-9 : 파일열기다이얼로그생성및출력 import javax.swing.*; import javax.swing.filechooser.*; import java.awt.event.*; import java.awt.*; public class MenuAndFileDialogEx extends JFrame { Container contentpane; JLabel imagelabel = new JLabel(); 26 MenuAndFileDialogEx() { settitle("menu 와 JFileChooser 활용예제 "); setdefaultcloseoperation(jframe.exit_on_close); contentpane = getcontentpane(); contentpane.add(imagelabel); createmenu(); setsize(250,200); setvisible(true); void createmenu() { JMenuBar mb = new JMenuBar(); JMenu filemenu = new JMenu("File"); JMenuItem openitem = new JMenuItem("Open"); openitem.addactionlistener( new OpenActionListener()); filemenu.add(openitem); mb.add(filemenu); this.setjmenubar(mb); class OpenActionListener implements ActionListener { JFileChooser chooser; OpenActionListener() { chooser= new JFileChooser(); public void actionperformed(actionevent e) { FileNameExtensionFilter filter = new FileNameExtensionFilter( "JPG & GIF Images", "jpg", "gif"); chooser.setfilefilter(filter); int ret = chooser.showopendialog(null); if(ret!= JFileChooser.APPROVE_OPTION) { JOptionPane.showMessageDialog(null, " 파일을선택하지않았습니다 ", " 경고 ", JOptionPane.WARNING_MESSAGE); return; String filepath = chooser.getselectedfile().getpath(); imagelabel.seticon(new ImageIcon(filePath)); pack(); public static void main(string [] args) { new MenuAndFileDialogEx();

27 예제실행