java - 如何捕获一组循环生成的 JToggleButton 的点击量?

标签 java swing jtogglebutton

我有 20 个循环生成的 JToggleButtons,我需要计算其中有多少是 Activity 的。

private void generarBotones(){    
    JToggleButton b;
    this.panelCuerpo.setLayout(new GridLayout(4,5));        
    for(int i = 1; i<=20; i++){
        b = new JToggleButton();
        b.setText(String.valueOf(i));
        this.panelCuerpo.add(b);
        b.addActionListener(new ActionListener() {
            int clicks = 0;
            @Override
            public void actionPerformed(ActionEvent ae2){
                clicks = clicks + 1;
                System.out.println(clicks);
            }                
            public void setCantidadBoletas(int clicks){
                cantidadBoletas = clicks;
            }
        });
    }   
}

这里的问题是它计算的是它们中的每一个被点击的次数,而不是计算它们被选中的次数。

附言。我尝试使用 (b.isSelected())b 需要 final 才能访问它,所以这不是解决方案。

最佳答案

如果您在循环内声明JToggleButton,您可以使其成为final:

for (int i = 1; i<=20; i++) {
    JToggleButton b = new JToggleButton();

然后你可以使用b.isSelected:

    b.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
            if (b.isSelected())
                clicks++;
            else
                clicks--;
        }
    });
}

clicks 必须是类变量。

关于java - 如何捕获一组循环生成的 JToggleButton 的点击量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30547764/

相关文章:

java - 在 onConfigurationChanged 中更改图像旋转

java - 测试类的参数化

java - 多选下拉菜单

java - 在Linux中运行jnotify程序时引发异常

java - 禁用 JComboBox 箭头按钮

Java 7 Web 启动问题与 list 文件

java - 如何在关闭窗口时自动保存 TextArea 中的内容?

java - 如何使用其中包含 actionPerformed 的 IF 语句从另一个类检查一个类中的 JToggleButton 状态?

java - JToggleButton API 中可能存在错误?

java - 如何在 Java Swing 中在屏幕上和屏幕外切换形状?