Notice
Recent Posts
Recent Comments
관리 메뉴

Developer Gonie

[5주차] 95. AWT, "이벤트 처리방법2(리스너 implements)" Frame 클래스 외부 클래스에서 처리하는 방법 본문

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("덧셈 프로그램");
	}
}
Comments