자바/자바팁

action event 를 쓸때 컴파일시 inner class 에러 나는 경우

행복한 수지아빠 2010. 10. 18. 10:22
반응형

addActionListener() 호출시 사용한 new ActionListener() { ... } 부분이

anonymous inner class이고 asd()의 인자인 str을 여기로 고이 전달하려면

str을 final로 선언해야 한다는 얘깁니다.

아래와 같이 final 붙여주면 됩니다.

 

 

class asd extends Frame
{
 public asd(final String str){
  
  setSize(300,200);
  setVisible(true);
  Button bt = new Button("go");
  add(bt);
  bt.addActionListener(new ActionListener(){
   
   public void actionPerformed(ActionEvent e){
    System.out.println(str);
   }

  });

 }

 

반응형