JComboBox无法编辑或输入文本

时间:2015-11-26 09:29:09

标签: java eclipse swing jcombobox

我无法在java中编辑JComboBox。虽然我已将属性设置为true但仍然没有用。当我将该属性设置为可编辑时,我甚至无法使用或选择其下拉列表中的值

JComboBox comboBoxEmployeeID = new JComboBox();
comboBoxEmployeeID.setModel(new DefaultComboBoxModel(new String[] {"45", "67", "78", "97"}));
comboBoxEmployeeID.setEditable(true);
comboBoxEmployeeID.setEnabled(true);
comboBoxEmployeeID.setBounds(140, 13, 163, 20);
add(comboBoxEmployeeID)

还有一点是,当我只是快速查看Eclipse中的设计/测试和预览时,我得到了一个可编辑且完美的JComboBox,但是一旦我调试问题就出现了

Here is the Quickly/Test and Preview Screenshot

1 个答案:

答案 0 :(得分:0)

您的问题可能是由代码的另一部分引起的。你能为整个框架(或应用程序)添加代码吗?如果我在你的问题中测试代码(使用Java 8 [1.8.0_65]和IntelliJ 15),它在我的机器上工作正常:

import javax.swing.*;

public class ComboBoxNoChange {
    public static void main(final String[] arguments) {
        SwingUtilities.invokeLater(() -> new ComboBoxNoChange().createAndShowGui());
    }

    private void createAndShowGui() {
        final JFrame frame = new JFrame("Stack Overflow");
        frame.setBounds(100, 100, 800, 600);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        final JPanel panel = new JPanel();
        panel.add(createComboBox(new String[]{"45", "67", "78", "97"}));
        frame.getContentPane().add(panel);

        frame.setVisible(true);
    }

    private JComboBox<String> createComboBox(String[] employeeIDs) {
        JComboBox<String> employeeIdComboBox = new JComboBox<>();
        employeeIdComboBox.setModel(new DefaultComboBoxModel<>(employeeIDs));
        employeeIdComboBox.setEditable(true);
        employeeIdComboBox.setEnabled(true);
        employeeIdComboBox.setBounds(140, 13, 163, 20);

        return employeeIdComboBox;
    }
}