我可以知道我可以触发系统来重新映射JList中的第n行吗?目前,我所做的是
jList0.repaint(); // Repaint entire JList, which is not efficient.
我只对更新JList中的第n行感兴趣。
请注意,我想这样做的原因是我安装了一个自定义列表单元格渲染器。列表的GUI外观取决于我的应用程序的外部模型阶段。
public ListCellRenderer getListCellRenderer() {
return new DefaultListCellRenderer() {
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
Component component = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (component != null && value != null) {
final MainFrame mainFrame = MainFrame.getInstance();
final String portfolioName = mainFrame.getJStockOptions().getPortfolioName();
if (value.toString().equals(portfolioName)) {
component.setFont(new Font(component.getFont().getName(), Font.BOLD, component.getFont().getSize()));
}
}
return component;
}
};
}
答案 0 :(得分:3)
list.repaint( list.getCellBounds(...) );