【问题标题】:Grid selection popup for combo box组合框的网格选择弹出窗口
【发布时间】:2022-01-03 13:58:49
【问题描述】:

我有一个JComboBox,可让您选择个人资料图片 - 一个画廊。

我当前组合框的图像:

如果我添加更多图像,您已经可以看到这将是多么笨拙。

基本上,我想用基于网格的弹出窗口“替换”弹出窗口,以便更轻松地选择图像。
但是,我想保留组合框本身的外观 - 显示有关当前所选图像的详细信息。

我目前看到的唯一方法是使用自定义外观 UI 类,由于我的应用程序的其余部分使用系统 L&F,因此 AFAIK 会使组合框看起来不合适。

【问题讨论】:

标签: java swing jcombobox


【解决方案1】:

组合框的弹出窗口使用JList 来显示项目。

您可以将JList 配置为使用水平环绕:

BasicComboPopup popup = (BasicComboPopup)comboBox.getAccessibleContext().getAccessibleChild(0);
JScrollPane scrollPane = (JScrollPane)popup.getComponent(0);
JList list = (JList) scrollPane.getViewport().getView();
list.setLayoutOrientation(JList.HORIZONTAL_WRAP);
list.setVisibleRowCount(2);

阅读 Initializing a List 上的 Swing 教程部分了解更多信息。

【讨论】:

  • 这可行,但它并不完全漂亮,因为它仍然显示与条目关联的图标和文本:image example 有没有办法解决这个问题?
  • 哦,对,它是JList - 我可以给它自己的单元格渲染器!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-30
  • 1970-01-01
相关资源
最近更新 更多