java - JButton 添加属性

标签 java swing jbutton

有没有办法获取我们这样声明的属性值?

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/

相关文章:

java - Spring Boot Thymeleaf 无法解析模板

java - 如何获取列表中的列表的困难

java - 如何让火柴人具有互动性?

java - 在 Java 中实现 MouseListener 的更简单方法

java - 我的自定义外观实现似乎不起作用

java - JButton 设置位置不起作用

java - 如何在 Java 中更改禁用的 JButton 的外观

java - 运行时异常 : Application "" could not be found in the registry.

java - 如何从 java 中进行 MANOVA(统计)?

java - 使用反射将可见 false 设置为按钮,可以吗?