【发布时间】:2012-11-07 21:57:46
【问题描述】:
我有自定义表格模型,还为我在 jtable 中有问题的双列自定义渲染。我希望可以选择在双列中保留空白单元格。事实上,当我把它留空时,写作是空的。默认情况下,此选项位于另一个字符串列中,但如果我将其设为空白,则会引发一些异常。我怎样才能做到?
编辑:这是错误
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);
}
【问题讨论】:
-
“一些”异常?抛出发生在特定位置的特定异常。它包含要阅读的特定消息。如果您不了解堆栈跟踪,至少向我们展示一下,以及相应的代码。
-
由
setValue引起的NullPointerException应该与您的单元格渲染器无关,它与数据/模型/编辑器有关 -
你的 XxxTableModel 有问题,与渲染器无关,