组合框的网格选择弹出窗口
Grid selection popup for combo box
我有一个 JComboBox
可以让你 select 个人资料图片 - 各种图库。
我当前组合框的图像:
如果我添加更多图片,您已经知道这将是多么笨拙。
基本上,我想用基于网格的弹出窗口“替换”弹出窗口,以便更轻松地select图像。
但是,我想保留组合框本身的外观 - 显示有关当前 selected 图像的详细信息。
目前我能看到的唯一方法是使用自定义外观 UI class,AFAIK 会使组合框看起来不合适,因为我的应用程序的其余部分使用系统 L&F。
组合框的弹出窗口使用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 教程部分了解更多信息。
我有一个 JComboBox
可以让你 select 个人资料图片 - 各种图库。
我当前组合框的图像:
如果我添加更多图片,您已经知道这将是多么笨拙。
基本上,我想用基于网格的弹出窗口“替换”弹出窗口,以便更轻松地select图像。
但是,我想保留组合框本身的外观 - 显示有关当前 selected 图像的详细信息。
目前我能看到的唯一方法是使用自定义外观 UI class,AFAIK 会使组合框看起来不合适,因为我的应用程序的其余部分使用系统 L&F。
组合框的弹出窗口使用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 教程部分了解更多信息。