我正在制作一个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());
}