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