我正在制作一个Java应用程序,其中显示了几个复选框以及文件中的相关项目。基于选择,我必须相应地修改原始文件。我已经完成了这一部分。

现在,我意识到用户可能需要添加一些信息。因此,我想显示一个钩有JTextField的复选框。我尝试使用的想法是,如果checkbox的值为true,则与之关联的JTextField的值将包含在文件中。

我想做这样的事情:

checkBoxes[i] = new Checkbox(new JTextField("enter new member e.g private int newMember"), null, false);


然后

if(checkBoxes[i]==true)
{
    updatefile(file, checkBoxes[i]);
}


其中updateFile是将checkBoxes[i]的值添加到文件的函数

我应该如何处理这个想法?

最佳答案

只需单独创建JTextField,就不需要它们具有相同的控件。



checkBoxes[i] = new JCheckBox("label");
textFields[i] = new JTextField("extra data");
// ...
if (checkBoxes[i].isSelected()) {
    updateFile(file, textFields[i]);
}


如果您要基于复选框的选定状态启用/禁用textField,请使用侦听器-例如ActionListener

checkBoxes[i].addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        textFields[i].setEnabled(checkBoxes[i].isSelected());
    }

10-08 15:30