이번에는 ActionListener을 구현(implement)을 안하고 ActionListener인터페이스를 구현클래스(익명클래스)로 만들어서
ActionListener 등록하는 방법이다.
리스너를 사용하는 방법이 2가지가 있는것이다
프로그램의 실행 결과는 똑같다
package blogpractice;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ColorChangeListener2 extends JFrame {
JButton redButton;
JButton blueButton;
JPanel centerPanel;
JPanel bottomPanel;
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == redButton) {
centerPanel.setBackground(Color.red);
}else {
centerPanel.setBackground(Color.blue);
}
}
};
public ColorChangeListener2() {
initData();
setInitLayout();
addEventListener();
}
private void initData() {
setTitle("구현클래스이용해서 리스너 등록");
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
redButton = new JButton("빨강");
blueButton = new JButton("파랑");
centerPanel = new JPanel();
bottomPanel = new JPanel();
}
private void setInitLayout() {
setVisible(true);
setLayout(new BorderLayout());
add(centerPanel, BorderLayout.CENTER);
add(bottomPanel, BorderLayout.SOUTH);
centerPanel.setBackground(Color.CYAN);
bottomPanel.setLayout(new FlowLayout(FlowLayout.CENTER,20, 20));
bottomPanel.add(redButton);
bottomPanel.add(blueButton);
}
private void addEventListener() {
redButton.addActionListener(listener);
blueButton.addActionListener(listener);
}
public static void main(String[] args) {
new ColorChangeListener2();
}
}
'개발일지 > 자바' 카테고리의 다른 글
마우스 리스너 (MouseListener) - 2 (익명, 구현 클래스) (0) | 2022.09.17 |
---|---|
마우스 리스너 (MouseListener) - 1 (0) | 2022.09.17 |
Button 리스너 등록 색 변경하기 - 1 (0) | 2022.09.17 |
각각의 버튼의 콜백메소드 (0) | 2022.09.17 |
콜백 매소드 (0) | 2022.09.16 |
댓글