【发布时间】:2016-12-30 08:59:42
【问题描述】:
我正在尝试编辑 JComboBox,使其在每个单元格中都有一个“删除”按钮(图像/图标)来删除特定条目。 我已经尝试创建自定义 CellRenderer,我能够添加图像但不能对鼠标点击做出反应(至少我不知道点击了哪个图像/单元格),我只能获得 X 和 Y 位置。但我不知道图像的位置。
如果有人对如何做到这一点有任何想法,我将不胜感激,我已经尝试过 google,但我没有找到任何像样的东西。
【问题讨论】:
-
很难做到,因为弹出窗口是另一个通过组合框 UI 显示的窗口,并且与原始组合框组件没有任何直接联系。此外,实现细节可能会因您使用的外观而异。作为一个衷心的建议:找到另一个解决方案。如果您不愿意接受此建议,请阅读一些有关编写自己的外观组件的基础知识,并参考 BasicComboBoxUI。
-
@mtj 自己的外观和感觉不是一个选项,它是一个使用系统外观和感觉的商业应用程序,我猜这就是它应该保持的方式。无论如何,为此制作自己的外观和感觉是不值得的功能
-
有一个带有JTable的ComboBoxEditor(带有不需要的列数),那么很容易也可以用AbstractButton将布尔值存储在XxxTableModel中,也许直接未修饰的JToggleButton,有一个问题,你可以' t 存储一些 JCcomponents 和 Icon 而不使用 JButtons 组件,否则需要付出巨大的努力
-
@mKorbel 需要详细说明吗?我发现的关于 ComboBoxEditor 和 JTable 的唯一参考是关于使用组合框作为表格单元格编辑器。
-
显示 JTable 而不是 JList(API 中的默认实现),不要使用 mouseEvents 和 JList,因为弹出窗口消失,立即隐藏
标签: java image swing icons clickable