17
GUI 프프프프프프 AWT(2) 프프프 프프프프 (I) 프프프프 프프프

GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

Embed Size (px)

Citation preview

Page 1: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

GUI 프로그래밍과 AWT(2)

컴퓨터 공학실험 (I)

인공지능 연구실

Page 2: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

2

AWT Event Model

Java 의 Event Model1. Event : 사용자가 Program 에 가한 행동2. Event Source : Event 가 일어난 근원3. Event Handler : 발생된 Event object 를 받아 적당한 행동을 취 하는 method

Page 3: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

3

Event Handler(1)

import java.awt.*; public class ButtonTest { public static void main(String args[]) {         Frame f = new Frame("Button Test"); //Frame 생성         Button b = new Button(“ 버튼 1"); //Button 생성         b.addActionListener(new ButtonHandler()); //addActionListener() method 는 이 Button 에 Event Handler 를

지정         f.add(b, "Center");         f.pack();         f.setVisible(true); } } 

Page 4: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

4

Event Handler(2)

1. import java.awt.event.*;

2.  public class ButtonHandler implements ActionListener { // interface 안에 있는 특정한 abstract method 를 구현

3.  public void actionPerformed(ActionEvent e) {

4.         System.out.println("Button 을 클릭하셨네요 .");

5.         System.out.println("Button 에 적힌 글은 " + e.getActionCommand());

6.   }

7. }

– Event Handler 를 만들 때는 반드시 적당한 Event Handler Interface 를 implements 해야 한다

– addXXXListener() 의 argument 로 올 Event Handler class 는 반드시 XXXListener interface 를 implements 해야 한다 .

Page 5: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

5

Method Categories and Interfaces

Page 6: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

6

AWT Component

– Button– Checkbox– CheckboxGroup– Choice– Canvas– Label– TextField– TextArea– List– Dialog– ScrollPane– Menu

Page 7: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

7

AWT Component(1) - Button

import java.awt.*;import java.awt.event.*; public class ButtonTest {

Frame f ; Button b; public static void main(String args[]) {        ButtonTest bt = new ButtonTest();         bt.go();  }  public void go() {         f = new Frame("Button Test");        

b = new Button(“ 확인 ");     b.addActionListener(new ButtonHandler());  f.add(b, "Center");        f.pack();         f.setVisible(true);

   }    class ButtonHandler implements ActionListener {        public void actionPerformed(ActionEvent ae) {                if (ae.getActionCommand().equals(" 확인 ")) {….}

// if (ae.getSource()==b){….}   }

   } }

Page 8: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

8

AWT Component(2) – Check Box

public class SampleCheckbox implements ItemListener {

   private Frame f;    private Checkbox one, two;

 

   public void go() {

        f = new Frame("Sample Checkbox");

        one = new Checkbox(“AI", true);

        two = new Checkbox(“Lab", false);

         one.addItemListener(this);

        two.addItemListener(this);

        ……..

}

public void itemStateChanged(ItemEvent ie) {

        String state = " 해제 ";         if (ie.getStateChange() == ItemEvent.SELECTED) {   state = " 선택 ";    }

        System.out.println (ie.getItem() + " " + state);

   }

Page 9: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

9

AWT Component(3) – Radio Button

public class TestCheckboxGroup implements ItemListener {   private Frame f;   private Checkbox one, two, three;    private CheckboxGroup cbg;    public void go() {        f = new Frame("Sample Checkbox");      cbg = new CheckboxGroup();        one = new Checkbox(" 대 ", cbg, true);    two = new Checkbox(" 중 ", cbg, false);        three = new Checkbox(" 소 ", cbg, false); ////////////////////////////// swing 에서는 JRadioButton        one.addItemListener(this); two.addItemListener(this);  three.addItemListener(this); ……… }

public void itemStateChanged(ItemEvent ev) {        String state = null;        if (ev.getStateChange() == ItemEvent.SELECTED) {                state = " 가 선택됨 ";                System.out.println (ev.getItem() + " " + state);      }}

Page 10: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

10

AWT Component(3) – Combo Box

public class SampleChoice implements ItemListener {   private Frame f;   private Choice choice; ///////// swing 에서는 JComboBox

   public void go() {        f = new Frame("Choice 연습 ");        choice = new Choice();        choice.addItem(“AI"); choice.addItem(“Lab"); choice.addItem(" 인공지능연구실 ");        choice.addItemListener(this); ………}

public void itemStateChanged(ItemEvent ev) {        String state = "deselected";        if (ev.getStateChange() == ItemEvent.SELECTED) {   state = "selected";    }        System.out.println (ev.getItem() + " " + state);   }

Page 11: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

11

AWT Component(3) – Canvas

public class CanvasTest extends Canvas implements KeyListener{   int x=10, y=10, xh=10, yh=10;   public void paint(Graphics g) {  g.drawRect(x, y, xh, yh);    }   public void keyTyped(KeyEvent ev) {        if (ev.getKeyChar() == 'j') {  x -= 1;   x -= 1;   }

else if (ev.getKeyChar() == 'l') {  x += 1;   x += 1; }        else if (ev.getKeyChar() == 'k') {  y += 1;   y += 1; }        else if (ev.getKeyChar() == 'i') {  y -= 1;  y -= 1;  }       repaint();   }   public void keyPressed(KeyEvent ev) { }    public void keyReleased(KeyEvent ev) { }   public static void main(String args[]) {        Frame f = new Frame("Canvas");         CanvasTest mc = new CanvasTest();        mc.setSize(150, 150);         f.add(mc, BorderLayout.CENTER);        mc.requestFocus();         mc.addKeyListener(mc);        f.pack();         f.setVisible(true);   }}

Page 12: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

12

AWT Component(3) – Label

import java.awt.*;

 

public class LabelTest{

public static void main(String args[]) {

         Frame f = new Frame(" 이게 Label 입니다 .");

         Label lb = new Label(" 사원정보 ");

         f.add(lb);

         f.pack();

         f.setVisible(true);

}

}

Page 13: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

13

AWT Component(3) – Text Field

import java.awt.*;import java.awt.event.*; public class TextFieldTest {

private Frame f; private TextField tf; 

public void go() {         f = new Frame("TextField Test");       tf = new TextField(30);       tf.setEchoChar('*');         f.add(tf, BorderLayout.CENTER);          f.pack();         f.setVisible(true);

public static void main (String args[]) {         TextFieldTest tft = new TextFieldTest();          tft.go();

}}

Page 14: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

14

AWT Component(3) – Text Area

import java.awt.*;import java.awt.event.*; public class TextAreaTest implements ActionListener {

private Frame f; private TextArea ta, tac; private Button ok;public void go() {        f = new Frame("TextArea"); ta = new TextArea("Hello!", 4, 30);         tac = new TextArea(4, 30); ok = new Button(" 복사 ");         f.add(ta, BorderLayout.NORTH);       f.add(ok, BorderLayout.CENTER);        f.add(tac, BorderLayout.SOUTH);         ok.addActionListener(this);      f.pack();         f.setVisible(true);}public void actionPerformed(ActionEvent av) {

         String text = ta.getText();        tac.setText(text);}public static void main (String args[]) {        TextAreaTest tt = new TextAreaTest();         tt.go();}

}

Page 15: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

15

AWT Component(3) – List

import java.awt.*; import java.awt.event.*;    public class TestList implements ActionListener {

   private Frame f;   private List list;    private Button b;    public void go() {

         f = new Frame(“List"); list = new List(4, true);list.add(“AI");       list.add(“Lab");       list.add(" 인공지능연구실 ");b = new Button(" 눌러 ~ 눌러 ~");f.add(list, BorderLayout.CENTER);     f.add(b, BorderLayout.SOUTH);

         b.addActionListener(this);      f.pack();         f.setVisible(true);    }

   public void actionPerformed(ActionEvent ae) {         String [] selectedItems;         selectedItems = list.getSelectedItems();

for (int i = 0; i < selectedItems.length; i++) System.out.println(selectedItems[i]);    }    public static void main (String args[]) {         TestList ml = new TestList();         ml.go();   }}

Page 16: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

16

AWT Component(3) – Dialog Box

import java.awt.*; import java.awt.event.*;public class TestDialog implements ActionListener {

private Frame f; private FileDialog fd; private Dialog dl; private Button b1, b2, close;public void go() {

         f = new Frame("FileDialog");        fd = new FileDialog(f, " 파일 열기 ");// Dialog 만들기 dl = new Dialog(f, "dialog", true);   dl.add(new Label(" 여러분 안녕 ?"), BorderLayout.NORTH);

         close = new Button(" 닫 기 ");   close.addActionListener(this);  dl.add(close, BorderLayout.CENTER); dl.pack();

b1 = new Button("FileDialog");  b2 = new Button("Dialog"); b1.addActionListener(this);          b2.addActionListener(this);         f.add(b1, BorderLayout.CENTER);         f.add(b2, BorderLayout.EAST);         f.pack();         f.setVisible(true);

}public void actionPerformed( ActionEvent ae) {

         String buttonPressed = ae.getActionCommand();        if (buttonPressed.equals("FileDialog")) {             fd.setVisible(true);       }

else if (buttonPressed.equals("Dialog")) {            dl.setVisible(true);       } else if (buttonPressed.equals(" 닫 기 ")) { dl.setVisible(false);    } else {    fd.setVisible(false);    }

} public static void main (String args[]) {

         TestDialog TestDialog = new TestDialog();     TestDialog.go();}

}

Page 17: GUI 프로그래밍과 AWT(2) 컴퓨터 공학실험 (I) 인공지능 연구실. 2 AWT Event Model Java 의 Event Model 1.Event : 사용자가 Program 에 가한 행동 2.Event Source

17

AWT Component(3) – ScrollPane

import java.awt.*;   public class TestScrollPane {    private Frame f;  private Image img; private Button b1, b2, b3, b4, b5, b6;   private Button b7, b8, b9, b10, b11, b12;    private Panel p; private ScrollPane sp;

public void go() {         f = new Frame("Sample ScrollPane"); p = new Panel(); sp = new ScrollPane();  p.setLayout(new GridLayout(4,3));

b1 = new Button(" 사람 1"); b2 = new Button(" 사람 2"); b3 = new Button(" 사람 3"); b4 = new Button(" 사람 4");         b5 = new Button(" 사람 5"); b6 = new Button(" 사람 6"); b7 = new Button(" 사람 7"); b8 = new Button(" 사람 8");

         b9 = new Button(" 사람 9"); b10 = new Button(" 사람 10");b11 = new Button(" 사람 11");b12 = new Button(" 사람 12");         p.add(b1); p.add(b2); p.add(b3); p.add(b4); p.add(b5); p.add(b6); p.add(b7); p.add(b8); p.add(b9); p.add(b10);

p.add(b11); p.add(b12);         sp.add(p);     f.add(sp, BorderLayout.CENTER);     f.setSize(100,100);        f.setVisible(true);    }     public static void main (String args[]) {         TestScrollPane TestScrollPane = new TestScrollPane();         TestScrollPane.go();  }}