我需要在运行时将值保存在我的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);
}
}
我已经在设计级别添加了一些元素,但是如果有一些随机值就会有问题。
答案 0 :(得分:3)
因为可以add
/ remove Item
({/ 1}}来自DefaultComboBoxModel
来覆盖JComboBox
,所以同样的操作(默认情况下)是可能来自外面。
您必须使用add
remove Item
/ JComboBox
来自MutableComboBoxModel
来自其自身的事件(view_to_model)。
@Robin
MutableComboBoxMode
和here提供了extends AbstractListModel implements MutableComboBoxModel
的优秀示例。
here,为将来的读者,否则搜索{{1}}。
答案 1 :(得分:1)
它不可能按你尝试的方式工作。
在单击按钮之前,comboBox必须是可编辑的,然后您只需要这一行
cb_bkname.addItem(((JTextField)cb_bkname.getEditor().getEditorComponent()).getText());
答案 2 :(得分: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);
}
}