3

我需要在运行时将值保存在我的 jcombobox 中。我想要做的是点击一个按钮后,我将它设置为可编辑=真。然后在组合框中键入值,但它不保存。

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) to / from the DefaultComboBoxModelunderlaying JComboBox,所以(默认情况下)可以从外部执行相同的操作。

  • 您必须使用MutableComboBoxModeto add/ remove Item(s) to / fromJComboBox触发事件本身(view_to_model)。

  • 这里这里MutableComboBoxModel有很好的例子。@Robin

  • 为了获得更好的帮助,请尽快发布 SSCCE,供未来的读者使用,否则请搜索extends AbstractListModel implements MutableComboBoxModel.

于 2013-01-13T23:11:33.160 回答
1

它不可能按照您尝试的方式工作。

在单击按钮之前,组合框必须是可编辑的,那么您只需要这一行

cb_bkname.addItem(((JTextField)cb_bkname.getEditor().getEditorComponent()).getText());
于 2013-01-13T21:53:43.833 回答
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 回答