[英]How to enable events on components in JList
我在JList上使用自定义渲染器,但是渲染的组件均不可访问。
list.setCellRenderer(new ListCellRenderer() {
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
JCheckBox c = new JCheckBox();
JButton b = new JButton("My Button!");
JPanel p = new JPanel(new FlowLayout());
p.add(c);
p.add(b);
if (isSelected) {
p.setBackground(Color.LIGHT_GRAY);
}
return p;
}
});
单击复选框或按钮不会执行任何操作。 我也尝试将ActionListener添加到按钮,但是在单击时并未触发。 唯一有效的是所选项目时的背景色(请参见屏幕截图)。
当我点击按钮时,甚至没有“点击动画”。
替代文字http://foto.darth.cz/pictures/2009-05-19_151057.png
所以我的问题是,是否需要做其他事情才能在渲染的组件上启用偶数?
确实与表格相同。 渲染器组件实际上不是真正的组件。 就像用来绘制假部件的模板一样。 为什么不尝试将组件粘贴在JScrollPane中或将它们放入一列JTable中,而是实现适当的渲染器/编辑器呢?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.