0

こんにちは私はjtableに取り組んでおり、特定の列にCurrencyRenderを適用するような方法でセルレンダラーを操作する必要があります。また、各行に着色イオンを適用しています。すべてが完璧に進んでいますが、数値列に currencyRenderer を適用すると、背景色が失われます。これは、 currency の cellrenderer を追加したことが原因である可能性があります。通貨レンダラーで列に色を付けるにはどうすればよいかを提案してください。ここに私のコードがあります

    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;
        }
    });

}
4

2 に答える 2