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が追加されましたが、何も発生しませんでした。
何か助けはありますか?
TIA、
ボブ