有没有办法获取我们这样声明的属性值?
JButton button = new javax.swing.JButton(){
public int value=0;
}
button.addActionListener(listener);
//in action listener
public void ActionPerformed(ActionEvent evt){
JButton btn = (JButton)evt.getSource();
btn.value =2; //error
}
最佳答案
您无法访问实例本身之外的匿名类的属性/方法。
原因是编译器知道 btn
是一个 JButton,而不是您的扩展,并且您无法转换到此扩展,因为它没有名称。
需要在单独的文件中创建一个内部类或类并实例化它,例如:
static class MyButton extends JButton {
public int value=0;
}
// ....
MyButton btn = new MyButton();
btn.addActionListener(listener);
// ....
@Override public void actionPerformed(ActionEvent evt){
MyButton btn = (MyButton)evt.getSource();
btn.value = 2;
}
关于java - JButton 添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10451250/