-1

Active" " と " "の 2 つのアイテムを含むコンボボックスを 1 つ作成し、jcomboobx の label と jtextfield のコードを1Dropedつ取り、コードを記述してコードが機能するようにしましたが、ラベルと jtextfield が最初は無効になっていないという問題が 1 つあります。アイテム " " を選択してから、アイテム " "を選択します。それ以外 の場合は、jframe を実行するときに、labeljtextfieldenable and disableaction eventDropedActivedisabledinitiallylabel 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

私が誤解していない限り:

コンポーネントが作成された後、JTextFieldおよび を無効JLabel するコードを追加する必要があります。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 に答える