Swing java 每当我在 JTextField 中写入时,JComboBox 就会消失

Swing java JComboBox disappears whenever I write in JTextField

我有一个主 JFrame 窗格,使用 Java 中的 Swing,其中嵌入了 JComboBox,其中包含许多选项。

打开时一切正常,但是当我在 JTextField 中写入时,JComboBox 中的文字消失了。

我正在通过以下方式启动我的 JComboBox

private static String[] options = new String[] {"Search your own pasted text" ,  "Search your own file", 
        "Search website", "Search Lyric Database", "Search Books Database"};
private static JComboBox<String> bookList = new JComboBox<>(options);

然后我以这种方式启动 JTextField

private static JTextField textFieldTheme = new JTextField(50); 
private static String theme = textFieldTheme.getText();

不知道为什么它们会相互干扰....一切仍然正常。事实上,我可以单击 JComboBox 菜单,只是它会调整大小并且文字会从中消失

根据您编写的上述代码,一切看起来都很好。 也许最好还添加您的主框架代码以查看您如何添加组件。

无论如何你都可以按照说明进行操作How to Use Text Fields

我发现 JTextField 干扰了 JTextArea 并且以某种方式造成了干扰,所以如果我在 JTextField 中写入内容,JComboBox 菜单文本就会消失。

我最终将 JTextField 变成了自定义的 JTextArea——虽然它并不理想,但它确实允许 JComboBox 工作而文本不会消失。

我使用这段代码将 JTextArea 变成了 JTextField:

JTextArea textFieldTheme = new JTextArea(textAreaText, 1, 50);
        DefaultCaret caret = (DefaultCaret)textFieldTheme.getCaret();
        caret.setUpdatePolicy(DefaultCaret.OUT_BOTTOM);

改编自这篇有用的文章POST: Java / Swing : JTextArea in a JScrollPane, how to prevent auto-scroll?