В моем приложении java я хочу установить цвет, а также поведение, когда оно выбрано. Для этого я написал пользовательскую реализацию TableCellRenderer, и он работает так, как я хочу. Но есть что-то я до сих пор путают о ...Swing JTable с пользовательским TableCellRenderer
Вот реализация TableCellRenderer
:
public class AccountMovementTableCellRenderer extends JLabel implements TableCellRenderer{
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){
//My implementation here...
return this;
}
}
А вот создание JTable
:
AccountMovementTableCellRenderer accountMovementCellRenderer = new AccountMovementTableCellRenderer();
entryTable = new JTable(entryModel){
private static final long serialVersionUID = 1L;
@Override
public TableCellRenderer getCellRenderer(int row, int column){
return accountMovementCellRenderer;
}
};
Я создаю только один экземпляр моего CellRenderer, но я ожидал один CellRenderer на ячейку, и я был удивлен, что он работает таким образом ... Содержимое и цвет для каждой ячейки разные, но он всегда использует один и тот же экземпляр CellRenderer, так как это могло бы работать ?