gpt4 book ai didi

java - JComboBox 具有 4 列和 4 行数据[][] 形式

转载 作者:行者123 更新时间:2023-12-01 13:55:49 25 4
gpt4 key购买 nike

在我的 Java Swing 应用程序中,我需要一个包含四列和四行的 JComboBox。基本上,它是一个用于选择颜色的组合框。当组合框折叠时,用户可以看到第一行的四列,当组合框展开时,用户可以看到 4x4 形式的十六种颜色。

我不知道如何设计这样的组合框布局。我可以使用渲染器,但我不确定如何实现它。我只能看到两种可能性:

创建一个名为“ColorLabel”的 JLabel,它绘制一个圆圈并填充其构造函数中指定的圆圈颜色。

  1. 创建一个面板“ColorRowPanel”并在其中添加四个 ColorLabel。创建四个 ColorRowPanel 对象并将其设置为组合框的模型。
  2. 创建一个 4x4 的 JTable 并在每个单元格中添加 ColorLabel。将 JTable 设置为 JComboBox 的模型。

这可能吗?如果是这样,我应该在哪个对象中添加 ColorRowPanels/JTable 以设置为模型?当选择颜色时,我应该能够知道选择了哪个 colorLabel 或哪个 row-col 来获取用户选择的颜色。

更新谢谢。按照您的指导,我开始了。

1) 创建了 JToggleButton 类型的类 ColorButton - 只是为了创建按钮的形状。没有更多的实现。代码取自here

2) 创建了一个扩展 AbstractColorChooserPanel 的类 ColorContainer。创建了一个包含 4 个 btns 的面板,并向类中添加了 4 个这样的面板。还为面板的每个按钮实现了 ButtonGroup。设计如图CrayonPanel所示- 在 buildChooser() 中添加了我的 initComponents()。构造函数为空。目前所有抽象方法都是空的。

3) JCC添加面板,使用JDialog.createDialog可以显示ColorContainer。它来得很好,只是我不想要“确定”、“取消”、“重置”按钮。我在 JCC 类或网上没有找到任何隐藏 JCC dlg 按钮面板的选项。

4)为了在面板上尝试同样的操作,我让 ColorContainer 扩展 JPanel 而不是 AbsColorChooserPanel 并在 Popup 中显示 ColorContainer,它显示得非常好。

我还无法解决两件事 -1) 主要 - 我想要这样的结果:

Results I need

第一部分显示下拉菜单何时折叠,第二部分何时显示。您会看到,无论下拉列表是否显示或折叠,第一个面板仍然可见。

到目前为止我得到的是:我添加了一个 JLABel 并在 mouseEnter 事件上显示弹出窗口。

如何实现我想要的结果?想不出实现此目的的方法。

2)是否可以隐藏 JColorChooser 的 btns 并获得我期望的结果!!

请指导我并帮助我。

最佳答案

此处不能使用组合框。组合框设计为每个弹出行中有 1 个元素。

您应该创建一个面板,其中包含用于所选行的 4 个按钮和用于打开带有另外 12 个按钮的弹出窗口的附加按钮。要创建弹出窗口,请参阅类 javax.swing.Popup

以下是分步指南:

  1. 创建带有 4 个颜色切换按钮和打开按钮的面板弹出窗口。
  2. 使用 12 个其他颜色按钮创建面板。
  3. 将所有颜色按钮添加到 ButtonGroup
  4. 制作打开/关闭弹出窗口的触发器并将其添加到打开按钮弹出窗口
  5. 如果其中一个颜色按钮处于关闭状态,则触发关闭弹出窗口的操作切换并将其添加到所有颜色按钮。

关于java - JComboBox 具有 4 列和 4 行数据[][] 形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19635764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com