Триггер для перерисовки n-й строки в JList - PullRequest
2 голосов
/ 09 октября 2009

Могу ли я знать, что могу запустить систему для перерисовки n-й строки в JList? В настоящее время я сделал

jList0.repaint();    // Repaint entire JList, which is not efficient.

Меня интересует только обновление n-й строки в JList.

Обратите внимание, что причина, по которой я хочу это сделать, заключается в том, что я устанавливаю настраиваемое средство отображения ячеек списка. 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;
        }
    };
}

1 Ответ

3 голосов
/ 09 октября 2009
list.repaint( list.getCellBounds(...) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...