【问题标题】:How to make a dropdown in Swing?如何在 Swing 中制作下拉菜单?
【发布时间】:2014-08-28 11:17:59
【问题描述】:

我需要创建一个文本框来自动完成用户输入的内容。我想要一个 JComboBox 之类的东西,只要用户根据一组可能性键入一个新字符,它就可以更新。我想通过扩展 JPanel 或 JComponent 创建自己的自定义组件来做到这一点。我不确定的是如何制作一个可以漂浮在所有其他内容上的框架。就像当您点击 JComboBox 的下拉菜单时,我怎样才能放置一个浮动在背景上方和文本框下方的可能性列表?

【问题讨论】:

  • 您可能会从this question 那里得到一些帮助。
  • 您至少有三个选择,JPopupMenu 或 JWindow 或未装饰的 JFrame/JDialog

标签: java swing


【解决方案1】:

您需要在您的项目中导入SwingX(最新版本):

import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator;

AutoCompleteDecorator 此类仅包含静态实用程序方法,可用于为某些 Swing 组件设置自动完成。

将您的 JComboBox 传递给静态方法:

jComboBox1 = new javax.swing.JComboBox();
jComboBox1.setEditable(true);
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "alejandro", "berenice", "juan", "ana", "bartolo", "diana", "cesar" }));
jComboBox1.setName("jComboBox1");
AutoCompleteDecorator.decorate(this.jComboBox1);

【讨论】:

  • 这行得通,但唯一的问题是我希望用户也能够输入超出可能性范围的内容。
【解决方案2】:

尝试使用 jide 组件,它们是基于 swing 构建的,提供比 swing 更高级的 gui 功能。

【讨论】:

    猜你喜欢
    • 2012-11-03
    • 2010-12-31
    • 1970-01-01
    • 2022-12-05
    • 2021-05-06
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多