Выбор строки в Java - PullRequest
       7

Выбор строки в Java

0 голосов
/ 05 марта 2020

Я сейчас проектирую свою Систему. Я добавил средство визуализации ячеек, чтобы создать альтернативный цвет строки в моем Jtable, но когда я вставляю средство визуализации ячеек в свой код, выбор JTabel становится ячейкой, в отличие от того, когда я вставляю код, где выделение находится в строке. Как я мог сделать свой JTable как выбор строки снова?

(Выбор строки в моих свойствах netbeans равен true, а выбор ячейки - false)

Вот код для средства визуализации ячеек


tblTable.setDefaultRenderer(Object.class, new TableCellRenderer(){
            private DefaultTableCellRenderer DEFAULT_RENDERER =  new DefaultTableCellRenderer();
            @Override
            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                Component c = DEFAULT_RENDERER.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
                if (row%2 == 0){
                    c.setBackground(Color.WHITE);
                }
                else {
                    c.setBackground(Color.LIGHT_GRAY);
                }                        
                return c;
            }

        });

1 Ответ

0 голосов
/ 05 марта 2020

Я добавил средство визуализации ячеек для создания альтернативного цвета строки на моем Jtable

Более простой подход - переопределить prepareRenderer(…) метод JTable. Затем рендеринг применяется ко всем средствам рендеринга, используемым таблицей.

Код basi c:

JTable table = new JTable( model )
{
    public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
    {
        Component c = super.prepareRenderer(renderer, row, column);

        //  Alternate row color

        if (!isRowSelected(row))
            c.setBackground(row % 2 == 0 ? getBackground() : Color.LIGHT_GRAY);

        return c;
    }
};

См. Рендеринг строк таблицы для получения дополнительной информации. и другой пример пользовательского рендеринга на уровне строк.

...