자바 강좌중에서요...
베레기
import java.awt.*;
import java.awt.event.*;
public class ActionEventTest extends Frame
implements ActionListener {
Button btn1, btn2;
List list1;
TextField txtfld1;
Label label1;
public ActionEventTest() {
btn1 = new Button(Button One);
btn2 = new Button(Button Two);
txtfld1 = new TextField();
txtfld1.setText(문자열입력후 엔터키를 눌러주세요);
list1 = new List();
list1.add(항목1);
list1.add(항목2);
list1.add(항목3);
label1 = new Label(이벤트소스);
btn1.addActionListener(this);
btn2.addActionListener(this);
txtfld1.addActionListener(this);
list1.addActionListener(this);
this.setLayout(new FlowLayout());
this.add(btn1);
this.add(btn2);
this.add(list1);
this.add(txtfld1);
this.add(label1);
}
// 등록한 액션이 발생했을때 호출되는 함수
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btn1 ||
e.getSource() == btn2 ||
e.getSource() == list1 ||
e.getSource() == txtfld1) {
label1.setText(e.getActionCommand());
this.validate();
}
}
public static void main(String[] args) {
ActionEventTest frm = new ActionEventTest();
frm.setTitle(ActionEventTest);
frm.setSize(300,150);
frm.setVisible(true);
}
}
위에 녹색 부분이요... 저기 accActionListener( this )에서요... this라구 하면 어디를 말하는거져??
각각의 버튼이나 리스트 텍스트 필드에 이벤트가 생기면 그때 public void actionPerformed()를 호출하는건가요??
아님 ActionEventTest라는 클래스를 말하는건가요??
이런식으로 말고 다른 방법도 여러가지여서 좀 헷갈려요 ㅠㅠ
제가 전에 하던 방식은 ActionEventTest라는 클래스에 이벤트가 발생할때 actionPerfomed() 메소드를 호출한다구 알고 있는데요^^;;
좀 자세히 알려주세요^^;;
-
든솔
아.. 그러면요 ActionEventTest란 클래스에 이벤트가 생기면 actionPerfromed()메소드가 호출되고 이 메소드에서 어떤 이벤트인지 판별한 후에 그 이벤트에 해당하는 작업을 한다는 이야기 맞나요??ㅎㅎ 국어가 무지 약해서요^^;;
답변 달아주셔서 감사드립니다~^^;; -
푸른들
저기저 녹색 부분의 this 라 함은 Frame 을 상속한 ActionEventTest 란 Class 를 말하는겁니다
다시 풀어서 말하면 btn1.addActionListener(this); 에서 addActionListener 에 들어갈 parameter 값은..
Event 처리에 대해 정의되어 있는곳(Class)이 어디인가?? 하는겁니다.
다시말해 ActionEventTest Class 를 말합니다
public void actionPerformed