Java JComboBox可编辑,选择时为空
我想制作一个Java JComboBox可编辑,选择时为空,java,swing,frame,jcombobox,Java,Swing,Frame,Jcombobox,我想制作一个JComboBox,其中一个特定的项目文本应该更改,并在选择时可编辑。例如,如果JComboBox的列表中有两个项目“一个”、“两个”,则选择“两个” 我已经编写了一个示例程序,其中我可以使字段可编辑,也可以更改文本,但不能同时更改两者。因此,请有人建议如何使选定的项目可编辑,以及更改文本 Object[] items = new Object[]{"One","Two"}; DefaultComboBoxModel dcbm = new DefaultComboBoxMo
JComboBox
,其中一个特定的项目文本应该更改,并在选择时可编辑。例如,如果JComboBox
的列表中有两个项目“一个”、“两个”
,则选择“两个”
我已经编写了一个示例程序,其中我可以使字段可编辑,也可以更改文本,但不能同时更改两者。因此,请有人建议如何使选定的项目可编辑,以及更改文本
Object[] items = new Object[]{"One","Two"};
DefaultComboBoxModel dcbm = new DefaultComboBoxModel(items);
final JComboBox comboBox = new JComboBox(dcbm);
comboBox.setPreferredSize(new Dimension(200, 20));
comboBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
Object selectedItem = comboBox.getSelectedItem();
boolean editable = selectedItem instanceof String && ((String)selectedItem).equals("Two");
comboBox.setEditable(editable);
//comboBox.setSelectedItem("text has changed");
}
});
因此,我不是最擅长使用jComboBox的人,所以这可能没有什么帮助,但我假设它使用一个数组来设置组合框中对象的字符串
(new String[] {"ONE","TWO"});
根据我对数组的理解,你可以
comboBox.addMouseListener(new MouseAdapter(){
public void ActionPerformed(MouseEvent click){
optionTwoClicked(click);
}
}
private void optionTwoClicked(MouseEvent click){
if (click.getSelectedItem()=String[2]){
String onTwo = JOptionPane.showInputDialog(null,"Enter your message","Messages",2);
textItem.setText()="onTwo";
}else{ //do something here?
}
}
然后添加如下内容的处理程序
comboBox.addMouseListener(new MouseAdapter(){
public void ActionPerformed(MouseEvent click){
optionTwoClicked(click);
}
}
private void optionTwoClicked(MouseEvent click){
if (click.getSelectedItem()=String[2]){
String onTwo = JOptionPane.showInputDialog(null,"Enter your message","Messages",2);
textItem.setText()="onTwo";
}else{ //do something here?
}
}
就像我之前说的,对jComboBox不是很熟悉,但是,
希望有帮助 所以我不是最好的将jComboBox放在头顶上的人,所以这可能没有帮助,但我假设它使用数组沿
(new String[] {"ONE","TWO"});
根据我对数组的理解,你可以
comboBox.addMouseListener(new MouseAdapter(){
public void ActionPerformed(MouseEvent click){
optionTwoClicked(click);
}
}
private void optionTwoClicked(MouseEvent click){
if (click.getSelectedItem()=String[2]){
String onTwo = JOptionPane.showInputDialog(null,"Enter your message","Messages",2);
textItem.setText()="onTwo";
}else{ //do something here?
}
}
然后添加如下内容的处理程序
comboBox.addMouseListener(new MouseAdapter(){
public void ActionPerformed(MouseEvent click){
optionTwoClicked(click);
}
}
private void optionTwoClicked(MouseEvent click){
if (click.getSelectedItem()=String[2]){
String onTwo = JOptionPane.showInputDialog(null,"Enter your message","Messages",2);
textItem.setText()="onTwo";
}else{ //do something here?
}
}
就像我之前说的,对jComboBox不是很熟悉,但是,
希望有帮助 类似于
String[] data = {"One", "Two"};
JComboBox<String> cb = new JComboBox<>(data);
add(cb);
cb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cb.setEditable(cb.getSelectedIndex() != 0);
}
});
到ActionListener
类似于
String[] data = {"One", "Two"};
JComboBox<String> cb = new JComboBox<>(data);
add(cb);
cb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cb.setEditable(cb.getSelectedIndex() != 0);
}
});
如果有人选择了“一”,你希望发生什么?在这种情况下,它应该保持不可编辑,没有任何更改。如果有人选择了“一”那么您希望发生什么呢?在这种情况下,它应该保持不可编辑状态而不做任何更改。
==
不是比较字符串
的Java。。。更不用说不编译==
的代码不是比较字符串的好方法。。。更不用说没有编译的代码了