Java的JTable的NullPointerException的问题
问题描述:如图,表中输入数据之后,我想点击开始计算,可是如果直接输完30就点击按钮,“30”这个数据不会产生反应,就是这个单元格的值还是Null,getValueAt就会...
问题描述:如图,表中输入数据之后,我想点击开始计算,可是如果直接输完30就点击按钮,“30”这个数据不会产生反应,就是这个单元格的值还是Null,getValueAt就会出现空指针异常。除非打一下回车或者点一下表格其它地方好像才会触发。这个该怎么办啊,求破!就20分了~~
相关代码如下:
static Object[] name = {"ID","重量","价值"};
private TableModel dataModel = new DefaultTableModel(name,0);
private JTable table = new JTable(dataModel);
w = new int[n]; //n为表的行数,已知。
v = new int[n];
//开始计算的actionlistener里面
for(int i = 0;i < n;i++){
w[i] = Integer.parseInt(dataModel.getValueAt(i,1).toString());
v[i] = Integer.parseInt(dataModel.getValueAt(i,2).toString()); //这一行出现空指针异常
} 展开
相关代码如下:
static Object[] name = {"ID","重量","价值"};
private TableModel dataModel = new DefaultTableModel(name,0);
private JTable table = new JTable(dataModel);
w = new int[n]; //n为表的行数,已知。
v = new int[n];
//开始计算的actionlistener里面
for(int i = 0;i < n;i++){
w[i] = Integer.parseInt(dataModel.getValueAt(i,1).toString());
v[i] = Integer.parseInt(dataModel.getValueAt(i,2).toString()); //这一行出现空指针异常
} 展开
1个回答
展开全部
JTable 在编辑过程中,有 CellEditor 支持,当它丢失焦点或 Enter 按下时会有一个事件发生,它询问,当前正在编辑的值是否是合法的(比如,当我们仅限制数字时,可以告诉 Swing 某个值是无效的,这样它的值就不会更新到 TableModel 中去),因此我们或许在 Focus 丢失时明确地声明该值是有效的。
默认的情况下可能是:当按 Enter 或 Tab 时接受了值,但按 Esc 或点鼠标时可能是丢弃这个值。
试一下这个。在丢失焦点时也告诉 JTable 我们需要接受这个值。
创建时,table.setCellEditor(new DefaultCellEditor(new JTextField()));
丢失焦点时,table.getCellEditor().stopCellEditing();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询