【发布时间】:2014-04-29 09:58:58
【问题描述】:
我不敢相信这不起作用。
我有一个 JList。我已将其渲染器设置如下。基本上RankingPanel 是一个带有两个标签和一个按钮的 JPanel。
topAchieverList = new JList();
topAchieverList.setCellRenderer(new TopBottomCellRenderer());
这是我的 TopBottomCellRenderer。
class TopBottomCellRenderer extends RankingPanel implements ListCellRenderer {
public TopBottomCellRenderer() {
}
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
try {
Achievers achiever = (Achievers) value;
if (achiever == null) {
return this;
}
itemRank.setText("#" + achiever.rank);
itemUnits.setText("" + achiever.units);
//this is the button that does not click
itemNameButton.setText(achiever.name);
//set bg
if (isSelected) {
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
} else {
setBackground(list.getBackground());
setForeground(list.getForeground());
}
return this;
} catch (Exception e) {
e.printStackTrace();
}
return this;
}
}
列表正确呈现,但JButton 不可点击。点击它什么都不做。
我该如何进行这项工作?
【问题讨论】: