我认为在同一个类中编写侦听器不是 OOP 方式。所以,我尝试在另一个文件中编写监听器。
有效的代码是:
class MyPanel extends JPanel{
private String tString = "Test String";
private JLabel tLabel;
public MyPanel(){
tLabel = new JLabel("Label");
JButton tButton = new JButton("Click me");
tButton.addActionListener(new ActionListener(){
public void ActionPerformed(ActionEvent e){
tLabel.setText(tString);
}
});
}
但是当我在单独的文件中写监听器时:
public class MyListener implements ActionListener{
copy code here
}
和改变
tButton.addActionListener(new ActionListener(){
到
tButton.addActionListener(new MyListener());
它不起作用。当然,我尝试过不同的组合。
例如,将“this”发送到侦听器的构造函数,并从侦听器类中接收到的对象调用方法。
错误:
MyListener: cannot find symbol "tLabel"