2012-02-28 3 views
2

Я не могу найти ответ на все это - я уверен, что это действительно просто, но я очень смущен!JTable Выделите конкретную таблицу для обновления

Я хочу изменить цвет фона ячейки при изменении значения. я написал визуализации ячейки ниже:

public class CyanTableCellRenderer extends DefaultTableCellRenderer { 

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 
    Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 

    cell.setBackground(Color.CYAN); 
    return cell; 
} 
} 

Я хочу передать значение ячейки из события в слушателе - выделить ячейку.

Может ли кто-нибудь помочь?

+0

http://docs.oracle.com/javase/tutorial/uiswing/components/table.html – kleopatra

+0

Я не смог найти ничего, что могло бы помочь мне там - я хочу сделать что-то вроде: table.setCellBackground (интермедиат строка, int col, Col col) – Josh

+1

снова прочитал - особенно абзацы о рендерере :-) Это потрясающий способ сделать «tableCellBackground» – kleopatra

ответ

2

Как было предложено @mKorbel, prepareRenderer() можно применить изменяется на любой выбранный рендер. Кроме того, вы можете установить цвет на основе параметра isSelected вашего средства визуализации.

if (isSelect) { 
    this.setBackground(Color.cyan); 
} 

Если вы просто хотите изменить цвет фона по умолчанию для выбранных клеток, изменяет свойства UIManagerTable.selectionBackground в начале вашей программы. Это повлияет на все таблицы во время исполнения.

UIManager.put("Table.selectionBackground", Color.cyan); 
2

1) Я не undarstand что i have a tableModelListener that works. делать с видеообработки, может быть, вы должны отметить, что

2) Вы можете использовать preparedRenderer для example

+0

. Я удалил двусмысленность комментария слушателя. Я не могу увидеть, как я могу использовать подготовленный рендерер и передать значения строк и столбцов ячейки, чтобы выделить? – Josh

Смежные вопросы