K-DigitalTraining 강의/1. Java
[5주차] 95. AWT, "이벤트 처리방법2(리스너 implements)" Frame 클래스 외부 클래스에서 처리하는 방법
이대곤
2022. 6. 9. 01:24
예시코드
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
class Sub88 extends Frame {
Sub88(String title){
super(title);
TextField text1 = new TextField(5); // 5글자가 보여지는 크기로 설정(5글자로 제한되는게 아님)
TextField text2 = new TextField(5);
TextField text3 = new TextField(5);
setLayout(new FlowLayout());
add(text1);
add(new Label("+"));
add(text2);
add(new Label("="));
add(text3);
Button bt1 = new Button("확인");
add(bt1);
bt1.addActionListener(new OkButton2(text1, text2, text3)); // 이벤트 발생시 OkButton 클래스에서 actionPerformed() 메소드를 찾게 하겠다.
//setSize(300,200);
pack(); // 공백을 최소화하는 컴포넌트들의 배치로 크기를 딱 맞게 설정하고 싶은 경우
setVisible(true);
}
}
class OkButton2 implements ActionListener{
TextField text1;
TextField text2;
TextField text3;
OkButton2(TextField text1, TextField text2, TextField text3){ // 값만 가져오는게 아니라 컴포넌트를 아예 가져옴
this.text1 = text1;
this.text2 = text2;
this.text3 = text3;
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("확인 클릭함");
int num1 = Integer.parseInt(text1.getText()); // 문자열을 정수로 바꿔줌
int num2 = Integer.parseInt(text2.getText()); // 문자열을 정수로 바꿔줌
int sum = num1 + num2;
text3.setText(sum + ""); // 숫자를 문자열로 바꿔줌
//text3.setText(String.valueOf(sum)); // 숫자를 문자열로 바꿔줌
}
}// OkButton
public class Ex12_08_Add2 {
public static void main(String[] args) {
new Sub88("덧셈 프로그램");
}
}