8

我正在用 Java swing 编写一个 Java 桌面实用程序,并且其中有一个最小的 GUI 部分,大部分工作都是在服务器端即后端完成的。所以,我不想花很多时间在 GUI 部分,学习不同的控件和小部件。问题是 Swing 有两个控件用于(对我而言)相同的任务,即下拉菜单,它们是JComboBoxJSpinner我不知道有什么区别,我不希望有任何限制会阻碍我在选择后完成我的任务一。

我必须使用下拉菜单来显示List<String>从 DataBase 返回的内容,它可以有多达数千个值。为了防止用户滚动,我将使用起始字母作为输入,否则会有一些类别限制,因此我可能会使用特定的值从List<String>. 我希望我的程序尽可能高效,并且在前端花费最少的时间,因为后端有很多操作。

任何帮助将不胜感激

4

3 回答 3

4

关键区别在于模型:SpinnerModel实现创建了一系列值,而 aComboBoxModel没有。如果 a 中的对象SpinnerModel没有合适的自然顺序,则需要强加一个。

实际上,正如@mKorbel 的回答中所建议的那样,“数千个价值”将受益于辅助方法。

于 2012-09-10T16:28:10.317 回答
4

我必须使用下拉列表来显示从数据库返回的列表,它可以有多达数千个值。

  • 上面提到JComponents的都是基于过早的数组,可能需要转换java.util.ListString[]or Vector(取决于你的代码逻辑)

  • 没有一个 GUI 被指定用来保存数千个值,看看Paginations for Databases engine

  • 上面提到AutoComplete JComboBox / JTextField的作品在今天的 PC 上没有任何问题,最多 2k 行

  • 用于从您查看的最大数组中搜索或选择Stepped JComboBox(大约两个或更多JComboBoxes

    1.st 减少选择[0-9, A-Z]

    2.nd 用于搜索开始的记录with A(例如)

  • 将事件重定向Database到后台任务并使用SwingWorkerRunnable#Thread

于 2012-09-10T13:34:41.617 回答
2

JComboBox适合您的要求。JComboBox适用于显示值列表。当您想要在 Spinner 的文本字段上执行一些功能(例如递增/递减)时,可以使用 JSpinner。

Oracle 教程解释了JSpinner关于JComboBox. 还有一个演示应用程序。

于 2012-09-10T13:31:16.467 回答