Swing Test
이것을 한번 만들어볼거에요.
Green 버튼을 누르면 가운데 판넬의 background 가 초록색으로 바뀌고
Red 버튼을 누르면 빨간색으로
Yellow 버튼을 누르면 노랑색으로
Blue 버튼을 누르면 파랑색으로 바뀌는 프로그램이에요.
총 4가지 방법으로 각 버튼에 이벤트를 걸어줄거에요.
public class InnerClassTest4 extends JFrame implements ActionListener{
JButton btnYellow = new JButton("Yellow");
JButton btnGreen = new JButton("Green");
JButton btnRed = new JButton("Red");
JButton btnBlue = new JButton("Blue");
JPanel panel = new JPanel();
//yellow 버튼 : 방법 1(implements actionListener 로 처리)
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals(btnYellow.getText()))
panel.setBackground(Color.yellow);
}
//green 버튼 : 방법2(이름있는 내부클래스, 이름 없는 객체)
class btnGreenHandler implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
panel.setBackground(Color.green);
}
}
//red 버튼 : 방법3(이름 없는 내부클래스, 이름 있는 객체)
ActionListener btnRedHandler = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
panel.setBackground(Color.red);
}
};
public InnerClassTest4() {
add(btnBlue, BorderLayout.EAST);
add(btnGreen, BorderLayout.WEST);
add(btnRed, BorderLayout.NORTH);
add(btnYellow, BorderLayout.SOUTH);
add(panel);
btnYellow.addActionListener(this); //방법 1
btnGreen.addActionListener(new btnGreenHandler()); //방법 2
btnRed.addActionListener(btnRedHandler); //방법 3
//blue 버튼 : 방법 4(이름없는 클래스, 이름없는 객체)
btnBlue.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
panel.setBackground(Color.blue);
}
});
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(400, 200);
setVisible(true);
}
public static void main(String[] args) {
new InnerClassTest4();
}
}