3

実行時にjcomboboxに値を保存する必要があります。私がやろうとしているのは、ボタンをクリックした後、それをeditable=trueに設定しています。次に、コンボボックスに値を入力しますが、保存されません。

private void btadbknameActionPerformed(java.awt.event.ActionEvent evt) {
  if(evt.getSource()== btadbkname){
    cb_bkname.setEditable(true);
    cb_bkname.getText();
    cb_bkname.addItem(evt);
  }else{
    cb_bkname.setEditable(false);
  }
}

設計レベルですでにいくつかの要素を追加しましたが、ランダムな値が発生した場合は制限があり、問題が発生します。

4

3 に答える 3

3
  • 下敷きから/へadd/ remove Item(s)することができるので、外部から同じアクション(デフォルト)が可能です。DefaultComboBoxModelJComboBox

  • MutableComboBoxModeto add/ remove Item(s)to / fromを使用してJComboBox、それ自体からイベントを発生させる必要があります(view_to_model)。

  • ここここMutableComboBoxModelでの優れた例があります。@Robin

  • より良いヘルプが必要な場合は、SSCCEをすぐに投稿してください。将来の読者のために、それ以外の場合はを検索してextends AbstractListModel implements MutableComboBoxModelください。

于 2013-01-13T23:11:33.160 に答える
1

これを試して

private void btadbknameActionPerformed(java.awt.event.ActionEvent evt) {
      if(evt.getSource()== btadbkname){
        cb_bkname.setEditable(true);
        String newItem=cb_bkname.getText();
        cb_bkname.addItem(newItem);
      }else{
        cb_bkname.setEditable(false);
      }
    }
于 2013-01-13T22:25:46.503 に答える
1

それはおそらくあなたがそれを試しているようには機能しません。

ボタンをクリックする前にcomboBoxを編集可能にする必要があります。その後、この行が必要になります。

cb_bkname.addItem(((JTextField)cb_bkname.getEditor().getEditorComponent()).getText());
于 2013-01-13T21:53:43.833 に答える