私は JTable とカスタム テーブル モデルを持っています。これはDouble.class
、列クラスとしていくつかの場所にあります。データベースから読み取り、結果をテーブルに挿入します。数値を小数点以下 2 桁で表示したいので、このクラスを使用します
public class NumberCellRender extends DefaultTableCellRenderer {
DecimalFormat numberFormat = new DecimalFormat("#.00");
@Override
public Component getTableCellRendererComponent(JTable jTable, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component c = super.getTableCellRendererComponent(jTable, value, isSelected, hasFocus, row, column);
if (c instanceof JLabel && value instanceof Number) {
JLabel label = (JLabel) c;
label.setHorizontalAlignment(JLabel.RIGHT);
Number num = (Number) value;
String text = numberFormat.format(num);
label.setText(text);
}
return c;
} }
問題は、addRow を呼び出したときに、Double.class 列がフォーマットされなかったことです。
public void addRowData( IEntity entity ) {
getRowsData().add(entity);
fireTableDataChanged();
}
問題は、これを呼び出すときに、テーブルをレンダリングするためにもっと何かを呼び出さなければならないということです??