TableCellRenderer выбрал проблему с ячейкой - PullRequest
2 голосов
/ 24 февраля 2011

Я хочу реализовать tablecellrenderer компонента JTable, который должен показывать другой цвет в зависимости от данных ячейки.Я получил это, но я не могу изменить цвет выбранной ячейки.Я пытался сделать это:

public Component getTableCellRendererComponent(JTable table, Object value,
        boolean isSelected, boolean hasFocus, int rowIndex, int vColIndex)
{

    if (isSelected) {
        this.setBackground((Color)UIManager.get("Table.selectionBackground"));
        this.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
    } else {
        this.setForeground((Color)UIManager.get("Table.foreground"));  
        this.setBackground((Color)UIManager.get("Table.background"));  
        this.setBorder(BorderFactory.createEmptyBorder()); 
    } 
...
}

, но это не работает: S .. Я не вижу проблемы, потому что JTable не показывает ничего другого, когда я нажимаю на ячейку.

Ответы [ 2 ]

2 голосов
/ 24 февраля 2011

Я хочу реализовать tablecellrenderer компонента JTable, который должен отображать другой цвет в зависимости от данных ячейки

Код, который вы опубликовали, не делает этого.По сути, все, что делает ваш код - это дублирует стандартное поведение рендерера

. Может оказаться, что подход рендеринг табличных строк проще реализовать.

0 голосов
/ 02 марта 2011

Предполагая, что вы используете JLabel в качестве основы компонента, установка фона не будет иметь никакого эффекта, если вы также не установите для opaque значение true. JLabels по умолчанию не непрозрачный и поэтому не рисует фон.

...