こんにちは、私はjtableで作業しています。そのため、セルレンダラーを使用して特定の列にCurrencyRenderを適用する必要があります。また、私は各色のイオンを適用しています。完璧なことはすべて起こっていますが、通貨列にcurrencyRendererを適用すると背景色が失われます。これは、通貨のcellrendererを追加することによるものです。通貨レンダラーを使用して列を色分けすることをお勧めします。私のコードレンダラー適用時のJtableセルの色付け方法
this.installAllignment(this.tblDemandView.getColumnModel().getColumn(numAmount), SwingConstants.RIGHT);
this.tblDemandView.getTableHeader().setReorderingAllowed(false);
this.tblDemandView.getTableHeader().setResizingAllowed(true);
tblDemandView.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
NumberFormat _formatf = NumberFormat.getNumberInstance();
_formatf.setMinimumFractionDigits(2);
_formatf.setMaximumFractionDigits(2);
MyCurrencyRenderer _rendererf = new MyCurrencyRenderer(_formatf);
TableColumnModel _model = tblDemandView.getColumnModel();
TableColumn _columnPu=_model.getColumn(_model.getColumnIndex("Amount"));
_columnPur.setCellRenderer(_rendererf);
private void installAllignment(TableColumn tableColumn, final int alignmentCode) {
tableColumn.setCellRenderer(new DefaultTableCellRenderer() {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
Component myself =
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
setHorizontalAlignment(alignmentCode);
DefaultTableModel model = (DefaultTableModel) table.getModel();
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
DefaultTableCellRenderer() {
if (row == table.getRowCount() - 1) {
Insets insets = new Insets(1, 0, 0, 0);
// setBorder(BorderFactory.createLineBorder(Color.BLACK));
}
return myself;
}
});
}
すぐに役立つようにするには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 –
より良い解決策は、各列に適用されるデリゲートパターンを考案して、一連のデリゲートを呼び出して、プラグイン可能な方法でレンダリング機能を提供することです。 – MadProgrammer
これは実際には難しいようです。デフォルトのAPI以外のものを使用すると、行の色付けを処理するベースレンダラークラスが必要になります。それを他のレンダラーすべての親クラスとして使用します。これは必ずしも可能ではなく、またそれは特にかわいくなり、管理頭痛になります。代わりに、あなたはこのような[この例のような]多くのキャンディストリッピングAPIのうちの1つをユーティリティにすることができます(https://stackoverflow.com/questions/25279727/java-abstracttablemodel-2-different-color-for-each-row/25279954# 25279954) – MadProgrammer