Java新手,对JTable知之甚少,现在做一个表格,比如说用户修改了表格中某一单元格的值,如何得到修改后的数据?
尝试用getValueAt(int r, int c),可是得到的还是修改以前的数据?
请问应该怎么写?有没有较通用的这方面的代码?是要用tablemodel么?
JTable里怎么得到修改后单元格里的值
答案:2 悬赏:0 手机版
解决时间 2021-02-23 04:38
- 提问者网友:欲劫无渡
- 2021-02-22 07:36
最佳答案
- 五星知识达人网友:大漠
- 2021-02-22 08:16
就是用getValueAt(int r, int c)啊!
用户一旦修改了表的数据,你在监听器里,得到那个table的对象,就可以之间用这个getValueAt方法的
如果还是修改之前的,可能有几个可能:
1.那条数据并没有真正的修改到了table中,这种情况也是最常见的错误
解决方法:
修改数据不能用简单的setValueAt()方法,而是应该对tablemodel里面的数据做修改,然后setModel(Model),这样传回去的table才是真正已经修改过数据的table,否则就不是,这也是大家都用的方法
2.自己的监听器写错了,可能在监听器里部分代码有问题
其他,应该没有问题了,你看下吧,估计是你的table数据没有真正的插入到table中,不是真正的修改数据,也就是说,你 没有用到setModel()方法,而是直接在界面上点击修改数据,没有用到监听器去setModel()
用户一旦修改了表的数据,你在监听器里,得到那个table的对象,就可以之间用这个getValueAt方法的
如果还是修改之前的,可能有几个可能:
1.那条数据并没有真正的修改到了table中,这种情况也是最常见的错误
解决方法:
修改数据不能用简单的setValueAt()方法,而是应该对tablemodel里面的数据做修改,然后setModel(Model),这样传回去的table才是真正已经修改过数据的table,否则就不是,这也是大家都用的方法
2.自己的监听器写错了,可能在监听器里部分代码有问题
其他,应该没有问题了,你看下吧,估计是你的table数据没有真正的插入到table中,不是真正的修改数据,也就是说,你 没有用到setModel()方法,而是直接在界面上点击修改数据,没有用到监听器去setModel()
全部回答
- 1楼网友:孤老序
- 2021-02-22 09:27
如果认可,请您赏分 60分,谢谢
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
final class TableCellDemoFrame extends JFrame {
private static final Dimension minSize = new Dimension(300, 200);
private static final Dimension maxSize = new Dimension(1024, 768);
private static final Dimension preferredSize = new Dimension(600, 400);
public Dimension getMaximumSize() {return maxSize;}
public Dimension getMinimumSize() {return minSize;}
public Dimension getPreferredSize() {return preferredSize;}
public String getTitle() {return "Table Cell DEMO";}
private JTable table;
private class _TableModel extends AbstractTableModel {
private Color c0=Color.BLUE,c1=Color.RED;
public String getColumnName(int column) {
switch(column){
case 0:return "COLORS";
default:return "";
}
}
public Class<
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯