gpt4 book ai didi

java - 如何在 JList 中的组件上启用事件

转载 作者:行者123 更新时间:2023-11-30 01:40:03 26 4
gpt4 key购买 nike

我在 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 添加到按钮,但单击时它没有触发。唯一有效的是选定项目时的背景颜色(参见屏幕截图)。

当我点击按钮时,甚至没有“点击动画”。

alt text http://foto.darth.cz/pictures/2009-05-19_151057.png

所以我的问题是,我是否需要做其他事情才能在渲染的组件上启用事件?

最佳答案

实际上与表格相同。渲染器组件实际上并不是真正的组件。它就像用来绘制假组件的模板。为什么不尝试将组件粘贴在 JScrollPane 中或将它们放入一列 JTable 中并实现适当的渲染器/编辑器?

关于java - 如何在 JList 中的组件上启用事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/882675/

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