▶ 내부클래스
ActionListner를 내부클래스로 만들어 간단하게 버튼 이벤트를 만들어 보려고 한다.
"Action"이라고 설정되어있는 버튼이름을 버튼 클릭시 "액션"이라고 바꿔주고
"액션"일 때 버튼을 클릭하면 다시 "Action"으로 바꾸어주는 액션리스너를 만들어보자.
▶ ActionLister 내부클래스 예제
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Ex03 extends JFrame {
public Ex03() {
setTitle("Action 이벤트 리스너 예제"); //프레임 제목
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //[X] 프레임 종료시 프로그램도 종료
Container c = getContentPane(); //컨테이너 생성
c.setLayout(new FlowLayout()); //프레임 위치 설정
JButton btn = new JButton("Action"); //버튼 생성 이름은 Action
btn.addActionListener(new MyActionListener()); //이벤트 생성
c.add(btn); //컨테이너에 버튼 추가
setSize(350, 150); //프레임 사이즈
setVisible(true); //프레임 전시여부
}
//이게 바로 내부 클래스다
//코드를 간결하게 유지할 수 있다.
class MyActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
JButton b = (JButton)e.getSource();
if(b.getText().equals("Action"))
b.setText("액션");
else
b.setText("Action");
//InnerClassListener의 멤버나 JFrame의 멤버를 호출할 수 있음
Ex03.this.setTitle(b.getText());
//프레임 타이틀에 버튼 문자열을 출력한다
}
}
//메인 클래스는 메인 클래스의 생성자만 호출
public static void main(String[] args) {
new Ex03();
}
}
타이틀도 "Action 이벤트 리스너 예제"로 시작하여 버튼 클릭시 버튼이름과 같이 바뀐다.
이렇게 내부 클래스를 이용하면 코드를 좀 더 간결하게 작성할 수 있다.
'JAVA' 카테고리의 다른 글
JAVA GUI 애니메이션_이벤트객체로 움직이는 이미지 만들기! (0) | 2022.04.16 |
---|---|
JAVA GUI 컨테이너 배치관리자 유형 (0) | 2022.04.13 |
JAVA 파일 입출력과 스트림(FileInputStream, InputStreamReader, FileReader) (0) | 2022.04.06 |
java 컬렉션(Collection) shuffle() 메소드를 이용한 간단하나 카드게임 만들기 (1) | 2022.04.05 |
[java] Set이란? (+HashSet, TreeSet 예제) (0) | 2022.04.03 |
댓글