繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM