我创建了一个组合框,其中两个项目为“Active
”和“Droped
”,然后我将一个label
与jtextfield
一起编写,并为enable and disable
编写代码jcomboobx action event
中的label和jtextfield的代码正在运行但是这里有一个问题,即标签和jtextfield最初没有被禁用...当我选择项目“Droped
”然后选择项目“{{1 “在运行jframe后Active
disabled
之后initially
,label 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);
}
}
检查快照:
答案 0 :(得分:2)
只需创建一个方法updateState()
,如下所示:
protected void updateState() {
boolean enabled = wtdl.getSelectedItem().equals("Droped");
txt_reason.setEnabled(enabled );
lab.setEnabled(enabled );
}
并在初始化组件后和actionPerformed()
答案 1 :(得分:1)
除非我误解:
您应该在创建组件后添加代码以通过JTextField
设置JLabel
和setEnabled(false)
已禁用。
如果您正在使用IDE我确定您可以通过右键单击它并导航到属性来设置组件的属性(这当然会成为创建JFrame
时的默认值。)
答案 2 :(得分:0)
您可以在创建组件后禁用JTextField。例如:
JTextField txtYourTextField = new JTextField();
txtYourTextField.setEnabled(false);