【发布时间】:2014-08-06 19:11:00
【问题描述】:
正如许多人所知,JList 中的组件不可交互(您无法与它们交互),它们就像组件外观的快照。我正在开发一个简单的应用程序,而 JList 正是我想要的,只是列表中的组件应该是可交互的。
到目前为止,我已经通过实现一个简单的 AbstractListModel 和 ListCellRenderer 创建了这个:
JList 中的每个组件都是一个 JPanel,如您所见,其中包含 JProgressBar、JLable 和 JButton 等其他组件。唯一的问题是按钮(和所有其他组件)不可交互。我该如何解决这个问题?
注意:我不想要单列 JTable!
【问题讨论】:
-
考虑使用布局来生成垂直对齐的组件列表,例如可能来自 SwingX 或 BoxLayout 的 VerticalLayout
-
@MadProgrammer 实际上我确实有这样的计划,以防万一 JList 无法修复(使用带有 GridLayout 的 JPanel 是我所拥有的)。但我会等待这个问题的答案。
-
我想你自己回答了,
JList不可编辑,它不是设计成的,试图改造成这样,是很多艰苦的工作(是的,我实际上已经试过)。您“可以”在JList上使用MouseListener,找到被点击的行,将MouseEvent转换为ListCellRenderer的上下文中并确定点击了什么......但第一个选项是更快更简单(使用布局管理器) -
@Seyed Mohammad 我不想要单列 JTable! == 错误的决定
-
@MadProgrammer 如果您尝试过并且没有简单且干净的解决方案,那么就决定了!答案很简单,它无法完成,我应该寻找替代方案。将此作为答案发布,以便我接受。