java - JComboBox 可编辑且选择时为空白

标签 java swing frame jcombobox

我想制作一个 JComboBox,其中特定项目文本应更改并在选择时变为可编辑。例如,如果 JComboBox 有两个项目 “ONE” ,“TWO” 在其列表中,然后选择“TWO”

我编写了一个示例程序,其中我可以使字段可编辑,或者可以更改文本,但不能同时更改两者。所以请有人建议如何使选择性项目可编辑并更改文本

 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");

        }
    });

最佳答案

类似...

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);
    }
});

基本上会做到这一点,但它不会做的是更新模型的值,只是让你知道;)

如果您想在组合框变得可编辑时使编辑器“空白”,您可以添加...

if (cb.isEditable() && cb.getSelectedIndex() != -1) {
    cb.setSelectedItem("");
}

ActionListener

关于java - JComboBox 可编辑且选择时为空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36468212/

相关文章:

java - 无法使用 ImageIcon 将图像添加到 jTable 单元格

java - 值未从 JList 传递到另一个 JList

javascript - 如何在另一个页面中突破一个对象框?

java - 在 "Out Of Memory"之后在哪里可以找到堆转储

java - JButton 上的图像

java - 如何等到用户关闭框架才能运行其余代码?

ios - OpenTok 流视频尺寸是否颠倒?

java - 调用数组并返回不同数组的方法会给出无法解析 B 到变量错误

Java 线程 : Run method cannot throw checked exception

java - 在插入时混合参数化查询和子查询