簡體   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