2012-09-11 7 views
3

여러분, 간단한 버튼 ActionListener를 구현하려고하지만 작동하지 않는 것처럼 보입니다. 자바 코드는 다음과 같이 연결되어 ..... 이 프로그램은 사용자의 클릭 동작에 응답하고 JLabel의Java ActionListener가 작동하지 않는 이유는 무엇입니까?

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 

public class Frame extends JFrame implements ActionListener { 

    public JButton btn = new JButton("Click"); 
    public JLabel display = new JLabel("null"); 
    public JPanel mainPanel = new JPanel(); 

    public Frame() { 

     mainPanel.add(btn); 
     mainPanel.add(display); 

     add(mainPanel); 
    } 

    public void actionPerformed(ActionEvent e) { 

     if (e.getSource() == btn) { 
      display.setText("it works"); 
      System.out.println("it works"); 
     } 
    } 

    public static void main(String[] args) { 

     Frame testFrame = new Frame(); 
     testFrame.pack(); 
     testFrame.setVisible(true); 

    } 
} 
+0

유 btn.addActionListener (이)를 사용하여 버튼을 등록해야; – Azuu

+0

버튼에 'ActionListner'가 붙은 시점은 언제입니까? 이 질문에 스스로 대답하면 알게 될 것입니다. – mtk

답변

7

귀하의 ActionListener의 컨텍스트를 변경하고자합니다 (JFrame의 자체) addActionListener에 추가되지 않습니다 .

+0

그래, 맞아 ... 고마워. .. 자세히 내 모든 시간을 죽이지 ... – user1662094

7

당신은 버튼에 ActionListner을 추가해야

public Frame(){ 

    mainPanel.add(btn); 
    mainPanel.add(display); 
    btn.addActionListener(this); 
    add(mainPanel); 
} 
관련 문제