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

Similar documents
<4D F736F F F696E74202D20C1A63230C0E520BDBAC0AE20C4C4C6F7B3CDC6AE203128B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

PowerPoint Presentation

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

11장.key

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

9장.key

<4D F736F F F696E74202D20C1A63138C0E520C0CCBAA5C6AE20C3B3B8AE28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63233C0E520B1D7B7A1C7C820C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - 04-UDP Programming.ppt

강의자료

No Slide Title

No Slide Title

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

슬라이드 1

Microsoft PowerPoint - 14주차 강의자료

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

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

Java Programing Environment

PowerPoint Presentation

PowerPoint Template

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

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

PowerPoint Presentation

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

PowerPoint Presentation

10장.key

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

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

슬라이드 1

PowerPoint Presentation

Microsoft PowerPoint - Java-03.pptx

PowerPoint Presentation

Microsoft PowerPoint - 06-Chapter09-Event.ppt

슬라이드 1

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

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

PowerPoint 프레젠테이션

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

Chap12

웹연동 } 웹 (Web) 환경에서데이터베이스시스템을연동하는방법은다음과같다 } Server Client 구조의통신 (2-Tier) } Server Middleware Client 구조의통신 (3-Tier) 2

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

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

05-class.key

JMF3_심빈구.PDF

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

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

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

쉽게 풀어쓴 C 프로그래밍

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

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - Java7.pptx

11-GUI.key

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

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

Cluster management software

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

PowerPoint 프레젠테이션

Design Issues

PowerPoint 프레젠테이션

Spring Boot/JDBC JdbcTemplate/CRUD 예제

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

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

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

PowerPoint Presentation

중간고사

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 08.다형성

PowerPoint Presentation

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

예제 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

오버라이딩 (Overriding)

ch09

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요

어댑터뷰

12-file.key

PowerPoint Presentation

Cluster management software

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

10-Java Applet

비긴쿡-자바 00앞부속

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

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

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

2 Application Name: Day10_yhg <LinearLayout android:layout_weight="3" > /> an

09-interface.key

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

제11장 프로세스와 쓰레드

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

[ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 <LinearLayout 2 ~~~~ 중간생략 ~~~~ 3 android:orientation="vertical" > 4 <ImageView

rmi_박준용_final.PDF

PowerPoint 프레젠테이션

Cluster management software

쉽게 풀어쓴 C 프로그래밊

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

운동시뮬레이션 강의 소개

Spring Data JPA Many To Many 양방향 관계 예제

Transcription:

JAVA Programming Spring, 2016 Dongwoo Kang

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

이미지버튼을표시하고사용자가버튼을누르면레이블의텍스트를이미지로바꾸어서표시하는프로그램을작성해보자.

public class ImageLabelTest extends JFrame implements ActionListener { private JPanel panel; private JLabel label; private JButton button; public ImageLabelTest() { settitle(" 이미지레이블 "); setsize(300,250); setdefaultcloseoperation(jframe.exit_on_close); panel = new JPanel(); label = new JLabel(" 이미지를보려면아래버튼을누르세요 "); button = new JButton(" 이미지레이블 "); ImageIcon icon = new ImageIcon("icon.gif"); button.seticon(icon); button.addactionlistener(this); panel.add(label); panel.add(button); add(panel); setvisible(true);

public staticvoid main(string[] args) { ImageLabelTest t=new ImageLabelTest(); public void actionperformed(actionevent e) { ImageIcon dog = new ImageIcon("dog.gif"); label.seticon(dog); label.settext(null);

체크박스 (check box) 란사용자가클릭하여서체크된상태와체크되지않은상태중의하나로만들수있는컨트롤

이름 설명 생성자 JCheckBox() 레이블이없는 Checkbox 를생성한다. JCheckbox(String label) 지정된레이블의 Checkbox 를생성한 다. JCheckbox(String label, boolean sele cted) 지정된상태와레이블을가지는 Checkbox 을생성한다. 메소드 String gettext() 체크박스에표시되는텍스트를가져 온다. Boolean isselected() 만약체크박스가선택되었으면 true 를 반환한다. void setselected(boolean value) 매개변수가 true 이면체크박스를체 크상태로만든다. void settext(string text) 체크박스텍스트를설정한다.

... public class CheckBoxPanel extends JPanel implements ItemListener { JCheckBox[] buttons = new JCheckBox[3]; String[] fruits = { "apple", "grape", "orange" ; JLabel[] picturelabel = new JLabel[3]; ImageIcon[] icon = new ImageIcon[3]; public CheckBoxDemo() { super(new GridLayout(0, 4)); // 체크박스생성 for (int i = 0; i < 3; i++) { buttons[i] = new JCheckBox(fruits[i]); buttons[i].additemlistener(this); picturelabel[i] = new JLabel(fruits[i] + ".gif"); icon[i] = new ImageIcon(fruits[i] + ".gif"); JPanel checkpanel = new JPanel(new GridLayout(0, 1)); for (int i = 0; i < 3; i++) checkpanel.add(buttons[i]);

add(checkpanel); add(picturelabel[0]); add(picturelabel[1]); add(picturelabel[2]); /** 체크박스의아이템이벤트를처리한다. */ public void itemstatechanged(itemevent e) { ImageIcon image = null; Object source = e.getitemselectable(); for (int i = 0; i < 3; i++) { if (source == buttons[i]) { if (e.getstatechange() == ItemEvent.DESELECTED) picturelabel[i].seticon(null); else picturelabel[i].seticon(icon[i]);

public static void main(string[] args) { JFrame frame = new JFrame("CheckBoxDemo"); frame.setdefaultcloseoperation(jframe.exit_on_close); CheckBoxPanel panel = new CheckBoxPanel(); panel.setopaque(true); frame.add(panel); frame.setsize(500, 200); frame.setvisible(true);

라디오버튼은체크박스와비슷하지만하나의그룹안에서는한개의버튼만선택할수있다는점이다르다

라디오버튼을생성한다. ü JRadioButton radio1 = new JRadioButton(" 선택 1"); ü JRadioButton radio2 = new JRadioButton(" 선택 2"); ü JRadioButton radio3 = new JRadioButton(" 선택 3"); ButtonGroup 객체를생성한다. ü ButtonGroup group = new ButtonGroup(); 라디오버튼들을 ButtonGroup 객체에추가한다. ü ü ü group.add(radio1); group.add(radio2); group.add(radio3);

커피의크기를선택하는다음과같은화면을라디오버튼을이용하여서생성하여보자.

import javax.swing.*; import javax.swing.border.border; import java.awt.event.*; import java.awt.*; class RadioButtonFrame extends JFrame implements ActionListener { private JRadioButton small, medium, large; private JLabel text; private JPanel toppanel, sizepanel, resultpanel; public MyFrame() { settitle(" 라디오버튼테스트 "); setsize(300, 150); setdefaultcloseoperation(jframe.exit_on_close); toppanel = new JPanel(); JLabel label = new JLabel(" 어떤크기의커피를주문하시겠습니까?"); toppanel.add(label); add(toppanel, BorderLayout.NORTH);

sizepanel = new JPanel(); small = new JRadioButton("Small Size"); medium = new JRadioButton("Medium Size"); large = new JRadioButton("Large Size"); ButtonGroup size = new ButtonGroup(); size.add(small); size.add(medium); size.add(large); small.addactionlistener(this); medium.addactionlistener(this); large.addactionlistener(this); sizepanel.add(small); sizepanel.add(medium); sizepanel.add(large); add(sizepanel, BorderLayout.CENTER); resultpanel = new JPanel(); text = new JLabel(" 크기가선택되지않았습니다."); text.setforeground(color.red); resultpanel.add(text); add(resultpanel, BorderLayout.SOUTH); setvisible(true);

public void actionperformed(actionevent e) { if (e.getsource() == small) { text.settext("small 크기가선택되었습니다."); if (e.getsource() == medium) { text.settext("medium 크기가선택되었습니다."); if (e.getsource() == large) { text.settext("large 크기가선택되었습니다."); public class RadioButtonTest extends JFrame { public static void main(string[] args) { new RadioButtonFrame();

경계 (border) 란시각적으로컴포넌트들을그룹핑할때사용하는장식적인요소 ü Border border = BorderFactory.createTitledBorder(" 크기 "); ü sizepanel.setborder(border);

텍스트필드 (text field) 는입력이가능한한줄의텍스트필드를만드는데사용된다 JTextField textfield = new JTextField(30); // 30자크기의텍스트필드를만든다. JTextField textfield = new JTextField( Initial String"); // 초기화문자열 System.out.println(textField.getText()); textfield.settext("seoul");

텍스트필드를이용하여사용자로부터정수를입력받은후에정수의제곱을구하여결과를출력전용의텍스트필드를이용하여표시하는프로그램을작성하여보자.

import javax.swing.*; import java.awt.event.*; class TextFieldFrame extends JFrame { private JButton button; private JTextField text, result; public MyFrame() { setsize(300, 130); settitle(" 제곱계산하기 "); setdefaultcloseoperation(jframe.exit_on_close); ButtonListener listener = new ButtonListener(); // 리스너객체생성 JPanel panel = new JPanel(); panel.add(new JLabel(" 숫자입력 : ")); text = new JTextField(15); text.addactionlistener(listener); panel.add(text); // 레이블생성 // 컬럼수가 15인텍스트필드생성 // 텍스트필드에리스너연결 panel.add(new JLabel(" 제곱한값 : ")); result = new JTextField(15); // 결과를나타낼텍스트필드 result.seteditable(false); // 편집불가설정 panel.add(result);

button = new JButton("OK"); button.addactionlistener(listener); panel.add(button); add(panel); setvisible(true); // 텍스트필드와버튼의액션이벤트처리 private class ButtonListener implements ActionListener { public void actionperformed(actionevent e) { if (e.getsource() == button e.getsource() == text) { String name = text.gettext(); int value = Integer.parseInt(name); result.settext(" " + value * value); text.requestfocus(); public class TextFieldTest extends JFrame { public static void main(string[] args) { new TextFieldFrame();

패스워드필드에사용자가암호를입력하면글자들이모두 * 문자로표시된다.

텍스트영역 (TextArea): 여러줄의텍스트가들어갈수있는컴포넌트

사용자가텍스트필드에텍스트를입력하고엔터키를누르면이것을텍스트영역에추가하는프로그램을작성하여보자.

class TextAreaFrame extends JFrame implements ActionListener { protected JTextField textfield; protected JTextArea textarea; public MyFrame() { settitle("text Area Test"); setdefaultcloseoperation(jframe.exit_on_close); textfield = new JTextField(30); textfield.addactionlistener(this); textarea = new JTextArea(10, 30); textarea.seteditable(false); add(textfield, BorderLayout.NORTH); add(textarea, BorderLayout.CENTER); pack(); setvisible(true);

public void actionperformed(actionevent evt) { String text = textfield.gettext(); textarea.append(text + "\n"); textfield.selectall(); textarea.setcaretposition(textarea.getdocument().getlength()); public class TextAreaTest extends JFrame { public static void main(string[] args) { new TextAreaFrame();

텍스트영역에스크롤바를만들려면스크롤페인에텍스트영역을넣어야한다. textarea = new JTextArea(10, 30); // 텍스트영역을생성한다. JScrollPane scrollpane = new JScrollPane(textArea); // 1

콤보박스 (combo box) 도여러항목중에서하나를선택하는데사용할수있다.

콤보박스를생성하기위해서는먼저생성자중에서하나를골라서호출하여야한다. 생성자는비어있는콤보박스를생성한다. JComboBox combo = new JComboBox(); 여기에항목을추가하려면 additem() 메소드를사용한다. combo.additem( dog ); combo.additem( lion ); combo.additem( tiger );

사용자가콤보박스에서하나의이미지를선택하면이것을화면에표시하는프로그램을작성해보자.

public class ComboBoxFrame extends JFrame implements ActionListener { JLabel label; public ComboBoxFrame() { settitle(" 콤보박스 "); setdefaultcloseoperation(jframe.exit_on_close); setsize(300, 200); String[] animals = { "dog", "lion", "tiger" ; JComboBox animallist = new JComboBox(animals); animallist.setselectedindex(0); animallist.addactionlistener(this); label = new JLabel(); label.sethorizontalalignment(jlabel.center); changepicture(animals[animallist.getselectedindex()]); add(animallist, BorderLayout.PAGE_START); add(label, BorderLayout.PAGE_END); setvisible(true);

public void actionperformed(actionevent e) { JComboBox cb = (JComboBox) e.getsource(); String name = (String) cb.getselecteditem(); changepicture(name); protected void changepicture(string name) { ImageIcon icon = new ImageIcon(name + ".gif"); label.seticon(icon); if (icon!= null) { label.settext(null); else { label.settext(" 이미지가발견되지않았습니다."); public static void main(string[] args) { ComboBoxFrame frame=new ComboBoxFrame();

슬라이더 (slider) 는사용자가특정한범위안에서하나의값을선택할수있는컴포넌트이다.

다음예제에서는슬라이더를움직이면표시되는이미지의크기가변경된다.

public class SliderFrame extends JFrame implements ChangeListener { static final int INIT_VALUE = 15; private JButton buttonok; private JSlider slider; private JButton button; public SliderFrame() { JPanel panel; settitle(" 슬라이더테스트 "); setdefaultcloseoperation(jframe.exit_on_close); panel = new JPanel(); JLabel label = new JLabel(" 슬라이더를움직여보세요 ", JLabel.CENTER); label.setalignmentx(component.center_alignment); panel.add(label);

slider = new JSlider(0, 30, INIT_VALUE); slider.setmajortickspacing(10); // 큰눈금간격 slider.setminortickspacing(1); // 작은눈금간격 slider.setpaintticks(true); // 눈금을표시한다. slider.setpaintlabels(true); // 값을레이블로표시한다. slider.addchangelistener(this); // 이벤트리스너를붙인다. panel.add(slider); button = new JButton(""); ImageIcon icon = new ImageIcon("dog.gif"); button.seticon(icon); button.setsize(init_value * 10, INIT_VALUE * 10);

panel.add(button); add(panel); setsize(300, 300); setvisible(true); public void statechanged(changeevent e) { JSlider source = (JSlider) e.getsource(); if (!source.getvalueisadjusting()) { int value = (int) source.getvalue(); button.setsize(value * 10, value * 10); publicstaticvoid main(string[] args) { new SliderFrame();

파일선택기 (File Chooser) 는파일시스템을탐색하여파일이나디렉토리를선택하는 GUI를제공한다. 파일선택기를표시하려면 JFileChooser 클래스를사용한다.

사용자가 파일오픈 버튼을누르면파일을선택하는대화상자가나오도록프로그램을작성해보자.

public class FileChooserTest extends JFrame implements ActionListener { JButton openbutton, savebutton; JFileChooser fc; public FileChooserTest() { settitle(" 파일선택기테스트 "); setdefaultcloseoperation(jframe.exit_on_close); setsize(300, 200); fc = new JFileChooser(); JLabel label = new JLabel(" 파일선택기컴포넌트테스트입니다."); openbutton= new JButton(" 파일오픈 "); openbutton.addactionlistener(this); savebutton= new JButton(" 파일저장 "); savebutton.addactionlistener(this); JPanel panel = new JPanel(); panel.add(label); panel.add(openbutton); panel.add(savebutton); add(panel); setvisible(true);

public void actionperformed(actionevent e) { // 파일오픈 버튼에대한액션이벤트처리 if (e.getsource() == openbutton) { int returnval = fc.showopendialog(this); if (returnval == JFileChooser.APPROVE_OPTION) { File file = fc.getselectedfile(); // 실제파일을오픈한다. else { // 사용자취소 // 파일저장 버튼에대한액션이벤트처리 else if (e.getsource() == savebutton) { int returnval = fc.showsavedialog(this); if (returnval == JFileChooser.APPROVE_OPTION) { File file = fc.getselectedfile(); // 실제파일에저장한다. else { // 사용자취소 public static void main(string[] args) { FileChooserTest frame = new FileChooserTest();

이번장에서는피자를주문할수있는애플리케이션을작성하여보자. 다음의스케치를참조하라.. 윈도우제목 피자주문자바피자에오신것을환영합니다. 종류콤보포테이토불고기 추가토핑피망치즈페페로니베이컨 크기 Small Me dium La r g e 주문 취소

class WelcomePanel extends JPanel { private JLabelmessage; public WelcomePanel() { add(message); message = ; // 레이블생성

class TypePanel extends JPanel { private JRadioButton combo, potato, bulgogi; public TypePanel() { setlayout(new GridLayout(3, 1); combo = new JRadioButton(" 콤보, true); potato = new (" 포테이토 ); bulgogi = new (" 불고기 ); ButtonGroup bg = new ButtonGroup(); bg.add(combo); bg.add(potato); bg.add(bulgogi); setborder( BorderFactory.createTitledBorder(" 종류 ")); add(combo); add(potato); add(bulgogi);

class ToppingPanel extends JPanel { // 토핑패널정의 JPanel 상속... private JRadioButton pepper, cheese, peperoni, bacon; // private ButtonGroup bg; // 버튼그룹참조변수 public ToppingPanel() { // 생성자 setlayout(new GridLayout(4, 1)); // 배치관리자일렬 pepper = new JRadioButton(" 피망 ", true); // 라디오버튼생성 cheese = new JRadioButton(" 치즈 "); peperoni = new JRadioButton(" 페페로니 "); bacon = new JRadioButton(" 베이컨 ");

참조변수 버튼생성 class SizePanel extends JPanel { // 사이즈패널정의 JPanel 상속 private JRadioButton samll, medium, large; // 라디오버튼 private ButtonGroup bg; // 버튼그룹참조변수 public SizePanel() { // 생성자 setlayout(new GridLayout(3, 1)); // 배치관리자 samll = new JRadioButton("Small", true); // 라디오 medium = new JRadioButton("Medium"); large = new JRadioButton("Large"); bg = new ButtonGroup(); // 버튼그룹생성 bg.add(samll); bg.add(medium); bg.add(large);

WelcomePanel 을 BorderLayout 의 North 에배치 자바피자에오신것을환영합니다. 종류콤보포테이토불고기 추가토핑피망치즈페페로니베이컨 크기 Small Me dium La r g e 주문 취소 TypePanel 을 BorderLayout 의 West 에배치 SizePanel 을 BorderLayout 의 East 에배치 ToppingPanel 을 BorderLayout 의 Center 에배치

왼쪽텍스트영역에사용자가한글을입력하고 변환 버튼을누르면미리입력된몇개의단어만을영어로변환한다.

public class TextConverter extends JFrame { JButton converter; JButton canceler; JTextArea textin; JTextArea textout; public TextConverter() { super(" 텍스트변환 "); // 텍스트영역 textin = new JTextArea(10, 14); textout = new JTextArea(10, 14); textin.setlinewrap(true);// 자동줄바꿈 textout.setlinewrap(true); textout.setenabled(false);// 비활성화 // 텍스트영역을관리할패널 JPanel textareapanel = new JPanel(new GridLayout(1, 2, 20, 20)); textareapanel.add(textin); textareapanel.add(textout);

// 버튼 converter = new JButton(" 변환 "); canceler = new JButton(" 취소 "); converter.addactionlistener(new ButtonActionListener()); canceler.addactionlistener(new ButtonActionListener()); // 버튼패널 JPanel buttonpanel = new JPanel(new FlowLayout()); buttonpanel.add(converter); buttonpanel.add(canceler); // 메인패널 JPanel mainpanel = new JPanel(new BorderLayout(10, 10)); mainpanel.add(borderlayout.center, textareapanel); mainpanel.add(borderlayout.south, buttonpanel); // 프레임설정 setlayout(new FlowLayout(FlowLayout.CENTER, 20, 20)); add(mainpanel); pack(); setdefaultcloseoperation(exit_on_close); setvisible(true);

// 버튼의액션이벤트를처리할버튼액션리스너클래스 private class ButtonActionListener implements ActionListener { @Override public void actionperformed(actionevent e) { // TODO Auto-generated method stub if (e.getsource() == converter) { textout.settext(""); String result = toenglish(textin.gettext()); textout.append(result); if (e.getsource() == canceler) { textout.settext(""); // 영어를한국어로변환하는메소드 private String toenglish(string korean) { String result = korean; result = result.replace(" 텍스트 ", "Text"); result = result.replace(" 영어 ", "English"); return result; public static void main(string[] args) { TextConverter t = new TextConverter();