除非勾选复选框,否则显示文本字段

时间:2013-05-18 18:40:30

标签: java swing text

如何使用JTextField创建我的程序以启用/禁用文本字段,具体取决于是否勾选了复选框?

我有一个选项,如果选中,则需要输入。如果没有选中,我希望文本字段保持灰色,用户无法输入文字。

2 个答案:

答案 0 :(得分:1)

mchq08没有给出完整的答案,因为如果取消选中JCheckBox,他的代码将无效。您不需要if块,因为您需要的只是项目监听器中的单行代码

checkBox.addItemListener(new ItemListener() {
  public void itemStateChanged(ItemEvent itemEvent){
    // the line below is the line that matters, that enables/disables the text field
    textField.setEnabled(itemEvent.getStateChange() == ItemEvent.SELECTED);
  }
});

答案 1 :(得分:0)

您可以使用复选框在事件侦听器中使用简单的if / else语句来执行该任务。

您可能希望将其放入复选框的事件监听器中,因此当事件被触发时,它将允许它可编辑。如果复选框为false,您还可以更进一步创建另一个if / else,并删除文本框中的文本并将其设置为可编辑。

if(checkBox.isEnabled()){
   textBox.setEditable(true);
}

Link CheckBox Link TextBox