public class Image Label Test extends JFrame implements




예제 public class Image. Label. Test extends JFrame implements Action. Listener { private JPanel panel; private JLabel label; private JButton button; public Image. Label. Test() { set. Title("이미지 레이블"); set. Size(300, 250); set. Default. Close. Operation(JFrame. EXIT_ON_CLOSE); panel = new JPanel(); label = new JLabel("이미지를 보려면 아래 버튼을 누르세요"); button = new JButton("이미지 레이블"); Image. Icon icon = new Image. Icon("icon. gif"); button. set. Icon(icon); button. add. Action. Listener(this); panel. add(label); panel. add(button); add(panel); set. Visible(true); }
![예제 public static void main(String[] args) { Image. Label. Test t=new Image. Label. Test(); 예제 public static void main(String[] args) { Image. Label. Test t=new Image. Label. Test();](http://slidetodoc.com/presentation_image_h/f5417748edd4e45702862048ebba25a3/image-5.jpg)
예제 public static void main(String[] args) { Image. Label. Test t=new Image. Label. Test(); } public void action. Performed(Action. Event e) { Image. Icon dog = new Image. Icon("dog. gif"); label. set. Icon(dog); label. set. Text(null); } }




예제. . . public class Check. Box. Panel extends JPanel implements Item. Listener { JCheck. Box[] buttons = new JCheck. Box[3]; String[] fruits = { "apple", "grape", "orange" }; JLabel[] picture. Label = new JLabel[3]; Image. Icon[] icon = new Image. Icon[3]; public Check. Box. Demo() { super(new Grid. Layout(0, 4)); // 체크 박스 생성 for (int i = 0; i < 3; i++) { buttons[i] = new JCheck. Box(fruits[i]); buttons[i]. add. Item. Listener(this); picture. Label[i] = new JLabel(fruits[i] + ". gif"); icon[i] = new Image. Icon(fruits[i] + ". gif"); } JPanel check. Panel = new JPanel(new Grid. Layout(0, 1)); for (int i = 0; i < 3; i++) check. Panel. add(buttons[i]);
![예제 add(check. Panel); add(picture. Label[0]); add(picture. Label[1]); add(picture. Label[2]); } /** 체크 박스의 아이템 예제 add(check. Panel); add(picture. Label[0]); add(picture. Label[1]); add(picture. Label[2]); } /** 체크 박스의 아이템](http://slidetodoc.com/presentation_image_h/f5417748edd4e45702862048ebba25a3/image-10.jpg)
예제 add(check. Panel); add(picture. Label[0]); add(picture. Label[1]); add(picture. Label[2]); } /** 체크 박스의 아이템 이벤트를 처리한다. */ public void item. State. Changed(Item. Event e) { Image. Icon image = null; Object source = e. get. Item. Selectable(); for (int i = 0; i < 3; i++) { if (source == buttons[i]) { if (e. get. State. Change() == Item. Event. DESELECTED) picture. Label[i]. set. Icon(null); else picture. Label[i]. set. Icon(icon[i]); } } }
![예제 public static void main(String[] args) { JFrame frame = new JFrame("Check. Box. Demo"); 예제 public static void main(String[] args) { JFrame frame = new JFrame("Check. Box. Demo");](http://slidetodoc.com/presentation_image_h/f5417748edd4e45702862048ebba25a3/image-11.jpg)
예제 public static void main(String[] args) { JFrame frame = new JFrame("Check. Box. Demo"); frame. set. Default. Close. Operation(JFrame. EXIT_ON_CLOSE); Check. Box. Panel panel = new Check. Box. Panel(); panel. set. Opaque(true); frame. add(panel); frame. set. Size(500, 200); frame. set. Visible(true); } }




라디오 버튼 ¢ 라디오 버튼을 생성한다. ¤ JRadio. Button radio 1 = new JRadio. Button("선택 1"); ¤ JRadio. Button radio 2 = new JRadio. Button("선택 2"); ¤ JRadio. Button radio 3 = new JRadio. Button("선택 3"); ¢ Button. Group 객체를 생성한다. ¤ Button. Group group = new Button. Group(); ¢ 라디오 버튼들을 Button. Group 객체에 추가한다. ¤ group. add(radio 1); ¤ group. add(radio 2); ¤ group. add(radio 3);


예제 import javax. swing. *; import javax. swing. border. Border; import java. awt. event. *; import java. awt. *; class Radio. Button. Frame extends JFrame implements Action. Listener { private JRadio. Button small, medium, large; private JLabel text; private JPanel top. Panel, size. Panel, result. Panel; public My. Frame() { set. Title("라디오 버튼 테스트"); set. Size(300, 150); set. Default. Close. Operation(JFrame. EXIT_ON_CLOSE); top. Panel = new JPanel(); JLabel label = new JLabel("어떤 크기의 커피를 주문하시겠습니까? "); top. Panel. add(label); add(top. Panel, Border. Layout. NORTH);

size. Panel = new JPanel(); small = new JRadio. Button("Small Size"); medium = new JRadio. Button("Medium Size"); large = new JRadio. Button("Large Size"); Button. Group size = new Button. Group(); size. add(small); size. add(medium); size. add(large); small. add. Action. Listener(this); medium. add. Action. Listener(this); large. add. Action. Listener(this); size. Panel. add(small); size. Panel. add(medium); size. Panel. add(large); add(size. Panel, Border. Layout. CENTER); result. Panel = new JPanel(); text = new JLabel("크기가 선택되지 않았습니다. "); text. set. Foreground(Color. red); result. Panel. add(text); add(result. Panel, Border. Layout. SOUTH); set. Visible(true); }

예제 public void action. Performed(Action. Event e) { if (e. get. Source() == small) { text. set. Text("Small 크기가 선택되었습니다. "); } if (e. get. Source() == medium) { text. set. Text("Medium 크기가 선택되었습니다. "); } if (e. get. Source() == large) { text. set. Text("Large 크기가 선택되었습니다. "); } } } public class Radio. Button. Test extends JFrame { public static void main(String[] args) { new Radio. Button. Frame(); } }

경계 만들기 ¢ 경계(border)란 시각적으로 컴포넌트들을 그룹핑할 때 사용하는 장식적인 요소 ¤ Border border = Border. Factory. create. Titled. Border("크기"); ¤ size. Panel. set. Border(border);

텍스트 필드 ¢ 텍스트 필드(text field)는 입력이 가능한 한 줄의 텍스트 필드 를 만드는 데 사용된다 JText. Field textfield = new JText. Field(30); // 30자 크기의 텍스트 필드를 만든다. JText. Field textfield = new JText. Field(“Initial String"); // 초기화 문자열 System. out. println(text. Field. get. Text()); text. Field. set. Text("Seoul");


예제 import javax. swing. *; import java. awt. event. *; class Text. Field. Frame extends JFrame { private JButton button; private JText. Field text, result; public My. Frame() { set. Size(300, 130); set. Title("제곱 계산하기"); set. Default. Close. Operation(JFrame. EXIT_ON_CLOSE); Button. Listener listener = new Button. Listener(); JPanel panel = new JPanel(); panel. add(new JLabel("숫자 입력: ")); text = new JText. Field(15); text. add. Action. Listener(listener); panel. add(text); // 리스너 객체 생성 // 레이블 생성 // 컬럼수가 15인 텍스트 필드 생성 // 텍스트 필드에 리스너 연결 panel. add(new JLabel("제곱한 값: ")); result = new JText. Field(15); // 결과를 나타낼 텍스트 필드 result. set. Editable(false); // 편집 불가 설정 panel. add(result);

예제 button = new JButton("OK"); button. add. Action. Listener(listener); panel. add(button); add(panel); set. Visible(true); } // 텍스트 필드와 버튼의 액션 이벤트 처리 private class Button. Listener implements Action. Listener { public void action. Performed(Action. Event e) { if (e. get. Source() == button || e. get. Source() == text) { String name = text. get. Text(); int value = Integer. parse. Int(name); result. set. Text(" " + value * value); text. request. Focus(); } } public class Text. Field. Test extends JFrame { public static void main(String[] args) { new Text. Field. Frame(); } }




예제 … class Text. Area. Frame extends JFrame implements Action. Listener { protected JText. Field text. Field; protected JText. Area text. Area; public My. Frame() { set. Title("Text Area Test"); set. Default. Close. Operation(JFrame. EXIT_ON_CLOSE); text. Field = new JText. Field(30); text. Field. add. Action. Listener(this); text. Area = new JText. Area(10, 30); text. Area. set. Editable(false); add(text. Field, Border. Layout. NORTH); add(text. Area, Border. Layout. CENTER); pack(); set. Visible(true); }

public void action. Performed(Action. Event evt) { String text = text. Field. get. Text(); text. Area. append(text + "₩n"); text. Field. select. All(); text. Area. set. Caret. Position(text. Area. get. Document(). get. Length()); } } public class Text. Area. Test extends JFrame { public static void main(String[] args) { new Text. Area. Frame(); } }





예제 public class Combo. Box. Frame extends JFrame implements Action. Listener { JLabel label; public Combo. Box. Frame() { set. Title("콤보 박스"); set. Default. Close. Operation(JFrame. EXIT_ON_CLOSE); set. Size(300, 200); String[] animals = { "dog", "lion", "tiger" }; JCombo. Box animal. List = new JCombo. Box(animals); animal. List. set. Selected. Index(0); animal. List. add. Action. Listener(this); label = new JLabel(); label. set. Horizontal. Alignment(JLabel. CENTER); change. Picture(animals[animal. List. get. Selected. Index()]); add(animal. List, Border. Layout. PAGE_START); add(label, Border. Layout. PAGE_END); set. Visible(true); }

예제 public void action. Performed(Action. Event e) { JCombo. Box cb = (JCombo. Box) e. get. Source(); String name = (String) cb. get. Selected. Item(); change. Picture(name); } protected void change. Picture(String name) { Image. Icon icon = new Image. Icon(name + ". gif"); label. set. Icon(icon); if (icon != null) { label. set. Text(null); } else { label. set. Text("이미지가 발견되지 않았습니다. "); } } public static void main(String[] args) { Combo. Box. Frame frame=new Combo. Box. Frame(); } }



예제 public class Slider. Frame extends JFrame implements Change. Listener { static final int INIT_VALUE = 15; private JButton button. OK; private JSlider slider; private JButton button; public Slider. Frame() { JPanel panel; set. Title("슬라이더 테스트"); set. Default. Close. Operation(JFrame. EXIT_ON_CLOSE); panel = new JPanel(); JLabel label = new JLabel("슬라이더를 움직여보세요", JLabel. CENTER); label. set. Alignment. X(Component. CENTER_ALIGNMENT); panel. add(label);

예제 slider = new JSlider(0, 30, INIT_VALUE); slider. set. Major. Tick. Spacing(10); // 큰 눈금 간격 slider. set. Minor. Tick. Spacing(1); // 작은 눈금 간격 slider. set. Paint. Ticks(true); // 눈금을 표시한다. slider. set. Paint. Labels(true); // 값을 레이블로 표시한다. slider. add. Change. Listener(this); // 이벤트 리스너를 붙인다. panel. add(slider); button = new JButton(""); Image. Icon icon = new Image. Icon("dog. gif"); button. set. Icon(icon); button. set. Size(INIT_VALUE * 10, INIT_VALUE * 10);

예제 panel. add(button); add(panel); set. Size(300, 300); set. Visible(true); } public void state. Changed(Change. Event e) { JSlider source = (JSlider) e. get. Source(); if (!source. get. Value. Is. Adjusting()) { int value = (int) source. get. Value(); button. set. Size(value * 10, value * 10); } } public static void main(String[] args) { new Slider. Frame(); } }



예제 public class File. Chooser. Test extends JFrame implements Action. Listener { JButton open. Button, save. Button; JFile. Chooser fc; public File. Chooser. Test() { set. Title("파일 선택기 테스트"); set. Default. Close. Operation(JFrame. EXIT_ON_CLOSE); set. Size(300, 200); fc = new JFile. Chooser(); JLabel label = new JLabel("파일 선택기 컴포넌트 테스트입니다. "); open. Button = new JButton("파일 오픈"); open. Button. add. Action. Listener(this); save. Button = new JButton("파일 저장"); save. Button. add. Action. Listener(this); JPanel panel = new JPanel(); panel. add(label); panel. add(open. Button); panel. add(save. Button); add(panel); set. Visible(true); }

예제 public void action. Performed(Action. Event e) { // “파일 오픈”버튼에 대한 액션 이벤트 처리 if (e. get. Source() == open. Button) { int return. Val = fc. show. Open. Dialog(this); if (return. Val == JFile. Chooser. APPROVE_OPTION) { File file = fc. get. Selected. File(); // 실제 파일을 오픈한다. } else { // 사용자 취소 } // “파일 저장”버튼에 대한 액션 이벤트 처리 } else if (e. get. Source() == save. Button) { int return. Val = fc. show. Save. Dialog(this); if (return. Val == JFile. Chooser. APPROVE_OPTION) { File file = fc. get. Selected. File(); // 실제 파일에 저장한다. } else { // 사용자 취소 } } } public static void main(String[] args) { File. Chooser. Test frame = new File. Chooser. Test(); } }


class Welcome. Panel extends JPanel { private JLabel message; public Welcome. Panel() { message = ____________; // 레이블 생성 } add(message); }

class Type. Panel extends JPanel { private JRadio. Button combo, potato, bulgogi; public Type. Panel() { set. Layout(new Grid. Layout(3, 1); combo = new JRadio. Button("콤보“, true); potato = new ______("포테이토“); bulgogi = new ______("불고기“); Button. Group bg = new Button. Group(); bg. add(combo); bg. add(potato); bg. add(bulgogi); set. Border( Border. Factory. create. Titled. Border("종류")); add(combo); add(potato); add(bulgogi); } }

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

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



예제 public class Text. Converter extends JFrame { JButton converter; JButton canceler; JText. Area text. In; JText. Area text. Out; public Text. Converter() { super("텍스트 변환"); // 텍스트 영역 text. In = new JText. Area(10, 14); text. Out = new JText. Area(10, 14); text. In. set. Line. Wrap(true); // 자동 줄바꿈 text. Out. set. Line. Wrap(true); text. Out. set. Enabled(false); // 비활성화 // 텍스트 영역을 관리할 패널 JPanel text. Area. Panel = new JPanel(new Grid. Layout(1, 2, 20)); text. Area. Panel. add(text. In); text. Area. Panel. add(text. Out);

예제 // 버튼 converter = new JButton("변환"); canceler = new JButton("취소"); converter. add. Action. Listener(new Button. Action. Listener()); canceler. add. Action. Listener(new Button. Action. Listener()); // 버튼 패널 JPanel button. Panel = new JPanel(new Flow. Layout()); button. Panel. add(converter); button. Panel. add(canceler); // 메인 패널 JPanel main. Panel = new JPanel(new Border. Layout(10, 10)); main. Panel. add(Border. Layout. CENTER, text. Area. Panel); main. Panel. add(Border. Layout. SOUTH, button. Panel); // 프레임 설정 set. Layout(new Flow. Layout(Flow. Layout. CENTER, 20)); add(main. Panel); pack(); set. Default. Close. Operation(EXIT_ON_CLOSE); set. Visible(true); }

예제 // 버튼의 액션 이벤트를 처리 할 버튼 액션 리스너 클래스 private class Button. Action. Listener implements Action. Listener { @Override public void action. Performed(Action. Event e) { // TODO Auto-generated method stub if (e. get. Source() == converter) { text. Out. set. Text(""); String result = to. English(text. In. get. Text()); text. Out. append(result); } if (e. get. Source() == canceler) { text. Out. set. Text(""); } } // 영어를 한국어로 변환하는 메소드 private String to. English(String korean) { String result = korean; result = result. replace("텍스트", "Text"); result = result. replace("영어", "English"); return result; } } public static void main(String[] args) { Text. Converter t = new Text. Converter(); } }


Q & A
- Slides: 56