java如何安排JComboBox项
我有一个包含9个图像项的JComboBox。我怎样才能把它们排列成3*3
我希望我的物品能这样安排
我用谷歌搜索了好几天,但我不知道这个问题的关键词是什么。任何建议都将不胜感激。谢谢你阅读我的问题
编辑:
谢谢大家的反馈。 我正在制作一个地图编辑器,我可以把地图元素放在一起。 The editor. 将石路排列为3*3更直观。用户可以很容易地知道哪些元素彼此匹配
我不一定使用组合框。我也考虑使用按钮,但我认为按钮会浪费一大块空间。因为我将来会有更多的地图元素
# 1 楼答案
给
JComboBox
一个自定义用户界面,就可以实现这一点。然而,至少在我的例子中,该UI是一个混乱的界面,所以只能将其作为一种解决方法,并用内联文档清楚地标记它。以下代码用于默认的Swing外观(金属)。如果你想用另一个L&;如果您需要交换自定义UI正在扩展的类,可能还需要做一些其他调整。对于特定于分销的L&;F(可能会迫使你使用反思和授权)。
(如果您还想将图像居中,请参见this answer。)
代码:
(很抱歉,我的评论被包装了,我不知道我的eclipse出了什么问题。)
要设置用户界面:
{}的源代码:
# 2 楼答案
组合框的弹出窗口使用JList组件来显示项目
您可以访问并更改JList的方向以包装项目:
这将允许您使用向上/向下键浏览项目
要支持使用左/右键导航,需要在组合框中添加额外的Key Bindings:
但是,弹出窗口基于添加到组合框中的最大项目的宽度。这将是一个问题,因为你不会看到所有的项目。当你使用按键导航时,这些项目会滚动,但你不会同时看到所有9个项目
要解决这个问题,请查看Combo Box Popup。它的功能允许你控制弹出窗口的大小/行为。你可以使用: