Я пытаюсь отобразить конкретную строку моего jtable (у него должен быть другой цвет фона и жирные символы).
Я нашел несколько вопросов относительно того, как реализовать пользовательский TableCellRenderer
( здесь и здесь ) и учебное пособие Как использовать таблицы и этот ( Отображение строк таблицы ).
Я использую JInternalFrame
для отображения JTable
.Я пытался реализовать оба решения, но ни getCellRenderer
, ни prepareRenderer
не вызывается.При отладке я вижу, как создается моя новая jtable, но моя точка останова внутри методов не вызывается.
Мой код выглядит следующим образом:
this.add(createData(model));
private JComponent createData(ProfitLossTableModel model) {
JTable table = new JTable(model) {
public TableCellRenderer getCellRenderer(int row, int column) {
if ((row == 0) && (column == 0)) {
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
renderer.setHorizontalAlignment(JLabel.RIGHT);
renderer.setBackground(Color.red);
return renderer;
} else {
return super.getCellRenderer(row, column);
}
}
};
table.setPreferredScrollableViewportSize(table.getPreferredSize());
table.changeSelection(0, 0, false, false);
table.setAutoCreateRowSorter(true);
return new JScrollPane(table);
}
Как видите, модельмоя реализация AbstractTableModel
.
Конечно, я что-то упустил.Я попытался позвонить repaint()
, чтобы узнать, произошло ли что-то, но ничего не произошло.
Я также попытался поместить JPane внутрь моего JInternalFrame, и они добавили в него JScrollPane, но ничего не произошло.1030 * Любая помощь?
TIA,
Боб