개발메모장

Swing Test

dorosy 2014. 12. 18. 16:59

 

이것을 한번 만들어볼거에요.

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();
 }
}