n개의 버튼이 있으면 각각의 버튼 구분하는 방법
1. ( == ) 사용하는 방법
2. 다운캐스팅을해서 .equals를 사용하는 방법
( == ) 사용법
equals 사용법
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 ColorChangeListener extends JFrame implements ActionListener{
JPanel centerPanel;
JPanel bottomPanel;
JButton redButton;
JButton blueButton;
public ColorChangeListener() {
initData();
setInitLayout();
addEventListener();
}
private void initData() {
setTitle("색 바꾸기");
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
centerPanel = new JPanel();
bottomPanel = new JPanel();
redButton = new JButton("빨강");
blueButton = new JButton("파랑");
}
private void setInitLayout() {
setVisible(true);
this.setLayout(new BorderLayout()); // BorderLayout배치를 초기화를 해준다.
this.add(centerPanel,BorderLayout.CENTER); // 초기화된 BorderLayout에 centerPanel을 중앙에 배치
this.add(bottomPanel,BorderLayout.SOUTH); // 초기화된 BorderLayout에 bottomPanel을 맨밑에 배치
centerPanel.setBackground(Color.CYAN); // 배치된 centerPanel의 배경색은 CYAN색으로 변경해준다.
// 맨밑에 배치된 bottomPanel안에 정렬을 FlowLayout해주기위해 초기화를 해주고나서 가운대 배치를 위아래 간격 20으로 해준다.
bottomPanel.setLayout(new FlowLayout(FlowLayout.CENTER,20,20));
bottomPanel.add(redButton); // 정렬이 정해졌으면 bottomPanel안에 redButton을 배치해준다.
bottomPanel.add(blueButton); // bottomPanel안에 blueButton을 배치해준다. (왼쪽부터 redButton, blueButton이 배치됨)
}
private void addEventListener() {
redButton.addActionListener(this); // redButton에 addActionListener을 추가해준다.
blueButton.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == redButton) { // redButton이 눌러졌을때 redButton이 맞을시에
centerPanel.setBackground(Color.red); // centerPanel의 배경색을 빨간색으로 변경해준다.
}else {
centerPanel.setBackground(Color.blue); // 다른버튼(blueButton)이 눌러졌을시에 파란색으로 배경색이 변경이된다.
}
}
public static void main(String[] args) {
new ColorChangeListener();
}
}
'개발일지 > 자바' 카테고리의 다른 글
마우스 리스너 (MouseListener) - 1 (0) | 2022.09.17 |
---|---|
Button 리스너 등록 색 변경하기 - 2 (익명, 구현클래스) (0) | 2022.09.17 |
각각의 버튼의 콜백메소드 (0) | 2022.09.17 |
콜백 매소드 (0) | 2022.09.16 |
Paint(좌표값을 이용한 그림 그리는 방법) (0) | 2022.09.14 |
댓글