カスタムテーブルモデルと、問題のあるjtableの二重列のカスタムレンダリングがあります。二重列に空白セルを残すオプションが必要です。実際、空白のままにすると、書き込みはnullになります。このオプションはデフォルトで別の文字列列にありますが、ここで空白にすると例外がスローされます。どうすればそれを作ることができますか?
編集:これはエラーです
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at table.MyTableModel.setValueAt(MyTableModel.java:62)
at javax.swing.JTable.setValueAt(JTable.java:2710)
at javax.swing.JTable.editingStopped(JTable.java:4712)
ここに MyTaleModel のコードがあります
public void setValueAt(Object value, int row, int col) {
data.get(row)[col] = value;
fireTableCellUpdated(row, col);
}
これはデータです: static ArrayList<Object[]> data
これが列レンダラーです
public class ColumnRenderer extends DefaultTableCellRenderer {
int precision = 0;
Number numberValue;
NumberFormat nf;
public ColumnRenderer(int p_precision) {
super();
setHorizontalAlignment(SwingConstants.RIGHT);
precision = p_precision;
nf = NumberFormat.getNumberInstance();
nf.setMinimumFractionDigits(p_precision);
nf.setMaximumFractionDigits(p_precision);
}
@Override
public void setValue(Object value) {
if ((value != null) && (value instanceof Number)) {
numberValue = (Number) value;
value = nf.format(numberValue.doubleValue());
}
super.setValue(value);
}