带有4列和4行数据[]表单的java JComboBox
在我的Java Swing应用程序中,我需要一个JComboBox
有四列四行。基本上,它是一个选择颜色的组合框。当组合框被折叠时,用户可以看到第一行的四列,当它被展开时,用户可以看到16种颜色的4x4格式
我不知道如何设计这样的组合框布局。我可以使用渲染器,但我不确定如何实现它。我只能看到两种可能性:
创建一个名为“ColorLabel”的JLabel
,它绘制一个圆,并按照其构造函数中的指定填充圆的颜色
- 创建一个面板“ColorRowPanel”,并在其中添加四个颜色标签。创建ColorRowPanel的四个对象,并将其设置为组合框的模型李>
- 创建一个4x4的
JTable
,并在每个单元格中添加ColorLabel。将JTable
设置为JComboBox
的模型李>
这有可能吗?如果是,我应该在哪个对象中添加我的ColorRowPanels/JTable来设置为模型?当选择颜色时,我应该能够知道选择了哪个colorLabel或哪个行col来获得用户选择的颜色
更新 谢谢按照你的指导,我启动了
1)创建了一个JToggleButton类型的类ColorButton——只是为了创建按钮的形状。没有更多的实施。代码取自here
2)创建了一个扩展AbstractColorChooserPanel的类ColorContainer。创建了一个由4个BTN组成的面板,并向类中添加了4个这样的面板。还为面板的每个按钮实现了ButtonGroup。设计如CrayonPanel所示——在buildChooser()中添加了my initComponents()。构造函数为空。其余所有的抽象方法都是空的
3)将面板添加到JCC并使用JDialog。createDialog可以显示ColorContainer。它来的很好,只是我不想确定,取消,重置基站。我在JCC类或网络上找不到隐藏JCC dlg按钮面板的选项
4)为了对面板进行同样的尝试,我让ColorContainer扩展了JPanel而不是AbsColorChooserPanel,并在弹出窗口中显示ColorContainer,它显示得非常好
有两件事我还没想好 1) MAIN-我想要这样的结果:
第一部分显示下拉列表何时折叠&;第二,当它被显示时。无论下拉列表是否显示或折叠,第一个面板仍然可见
到目前为止,我得到的是:我添加了一个JLAbel,在mouseEnter事件中,我显示了弹出窗口
我如何实现我想要的结果想不出一种方法来实现这一点
2)是否可以隐藏JColorChooser的BTN并获得我期望的结果
请引导我,帮助我
# 1 楼答案
这里不能使用组合框。Combobox设计为在每个弹出行中有一个元素
您应该为所选行创建一个包含4个按钮的面板,并使用另外12个按钮打开弹出窗口。要创建弹出窗口,请参见类
javax.swing.Popup
以下是分步指南: