如何在选择组合框项目时启用标签和文本字段

时间:2012-12-12 09:40:00

标签: java swing actionlistener jcombobox jtextfield

我创建了一个组合框,其中两个项目为“Active”和“Droped”,然后我将一个labeljtextfield一起编写,并为enable and disable编写代码jcomboobx action event中的label和jtextfield的代码正在运行但是这里有一个问题,即标签和jtextfield最初没有被禁用...当我选择项目“Droped”然后选择项目“{{1 “在运行jframe后Active disabled之后initiallylabel and jtextfield enabled所以我想要how to jlablel and Jtextfield enable when jcombobx select item " Droped " only

源代码:

private void wtdlActionPerformed(java.awt.event.ActionEvent evt) {                                     

        txt_reason.setEnabled(false); //txt_reason is jTextField
        lab.setEnabled(false); //lab is jLabel

        if(wtdl.getSelectedItem().equals("Active")) //wtdl is jConobbox
        {
        txt_reason.setEnabled(false);
        lab.setEnabled(false);
        }
      else if(wtdl.getSelectedItem().equals("Droped"))
        {
        txt_reason.setEnabled(true); 
        lab.setEnabled(true);
        }
    }

检查快照:

enter image description here

3 个答案:

答案 0 :(得分:2)

只需创建一个方法updateState(),如下所示:

protected void updateState() {
    boolean enabled = wtdl.getSelectedItem().equals("Droped");
    txt_reason.setEnabled(enabled ); 
    lab.setEnabled(enabled );
}

并在初始化组件后和actionPerformed()

中调用它

答案 1 :(得分:1)

除非我误解:

您应该在创建组件后添加代码以通过JTextField设置JLabelsetEnabled(false) 已禁用

如果您正在使用IDE我确定您可以通过右键单击它并导航到属性来设置组件的属性(这当然会成为创建JFrame时的默认值。)

答案 2 :(得分:0)

您可以在创建组件后禁用JTextField。例如:
JTextField txtYourTextField = new JTextField();

txtYourTextField.setEnabled(false);