-1

我创建了一个组合框,其中两个项目分别为“ Active”和“ Droped”,然后我在jcomboobx 中label使用jtextfield并编写enable and disable标签和 jtextfield 的action event代码,因此代码可以正常工作,但这里有一个问题是标签和 jtextfield 最初没有被禁用......当我选择项目“ Droped”然后在运行jframe时选择项目“ Active”,disabled否则 我想要initiallylabel and jtextfield enabledhow 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);
        }
    }

检查快照:

在此处输入图像描述

4

3 回答 3

2

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

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

并在您初始化组件并在您的actionPerformed()

于 2012-12-12T09:57:37.293 回答
1

除非我误解了:

您应该在创建组件后添加代码以设置JTextFieldJLabel 禁用via 。setEnabled(false)

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

于 2012-12-12T09:52:05.973 回答
0

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

txtYourTextField.setEnabled(false);

于 2012-12-12T09:53:03.143 回答