Как уменьшить ресурсы процессора для Custom DefaultTableCellRenderer (таблица цветов зебры)? - PullRequest
0 голосов
/ 10 марта 2019

У меня есть таблица в программе, и я создаю таблицу цветов Zebra, используя класс:

private class ColorTableCellRenderer extends DefaultTableCellRenderer {
    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        final Component cellComponent = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        table.setIntercellSpacing(new Dimension(0,0));
        if(!isSelected) {
            if (row%2 == 0) {
                cellComponent.setBackground(new Color(255,255,254));
            } else {
                cellComponent.setBackground(new Color(170,170,170));
            }
        }
        return cellComponent;
    }
}

при вызове этого класса с:

mytable.setDefaultRenderer(Object.class, new ColorTableCellRenderer());

нужны очень большие ресурсы процессора (около 50%). А при использовании DefaultTableCellRenderer вызывайте с:

mytable.setDefaultRenderer(Object.class, new DefaultTableCellRenderer());

Нужны только 1% ресурсов процессора. Я пытаюсь использовать это:

private class ColorTableCellRenderer extends DefaultTableCellRenderer {
    JTable table = new JTable()
    {
        @Override
        public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
        {
            Component c = super.prepareRenderer(renderer, row, column);
            table.setIntercellSpacing(new Dimension(0,0));
            System.out.println("Coba ");
            //  Alternate row color
            if(row%2 == 0) {
                c.setBackground(Color.YELLOW);
            }
            else {
                c.setBackground(Color.GREEN);
            }
            return c;
        }
    };
}

Ничего не произошло (не удалось). Может быть, кто-то может исправить класс ColorTableCellRenderer выше, чтобы уменьшить использование ресурсов процессора. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...