java - 您可以动态创建对 JCheckBox 对象的引用吗?

标签 java arrays swing jcheckbox

我不知道如何问这个问题。我正在编写的程序已完成,但似乎代码过多。这是部分代码:

chkDef1 = new JCheckBox

if (chkDef1.isSelected()) {
            actual = chkDef1.getText();
        } 
else if (chkDef2.isSelected()) {
            actual = chkDef2.getText();
        } 
else if (chkDef3.isSelected()) {
            actual = chkDef3.getText();
        } 
else {
            actual = chkDef4.getText();
        }

还有其他区域存在大量带有 chkDef1 - 4 复选框的重复代码。我想做的是在代码重复的区域使用循环,然后只使用 1 个赋值语句。

我已经尝试过: if(('chkDef' + counter).isSelected())

我还尝试将“'chkDef' + counter”分配给字符串变量,然后添加 isSelected。不幸的是我不断收到错误消息。

我是一名新手程序员,所以我不知道我想做的事情是否可能或它叫什么。如果可能的话,我们将不胜感激。

最佳答案

只需创建一个复选框列表并对其进行迭代即可。

ArrayList<JCheckBox> checkboxes  = new ArrayList<JCheckBox>();
//Init your checkboxes array. 

for(JCheckbox chkbox :checkboxes)
{
  if(chkbox.isSelected())
   {
    actual = chkbox.getText() ; break;
  }
}

尽管如此,可能有一个 JCheckbox 组可以执行您想要的操作。

Looks like you can use ButtonGroup并让元素迭代它。

关于java - 您可以动态创建对 JCheckBox 对象的引用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13595677/

相关文章:

java - 使用装饰器模式装饰 JLabel

java - 迭代地添加带有 gridbaglayout 的组件?

java - 如果用户移动了分隔线的位置,如何让 JSplitPane 保持相同的比例位置

java - 从 Selenium 和 chromedriver 下载文件

ios - 在 Swift 中搜索数组对象

java - 计算数组中不同元素数量的递归方法

java - 不知道如何洗牌

php - 排序 PHP 数组,保留重复项

java - CentOS 7 上的 Ambari 2.7.5 安装失败

java - 自动捕获 BlazeDS 远程方法抛出的所有异常?