我做的是从数据库中读出来的数据集,放到JTable中,一共三列,每一列都在TABLE下面对应一个JTextfield.选中其中一行,则3个JTextfield 就对应显示那一行的3列.我想做到的是,在JTextfield 中修改列的值,JTable中对应的那一行那一列的值会跟着改变,在我选择了其他行后,前面更改的结果就会保存在TABLE中。请高手帮帮忙给段代码,谢谢 
问题补充:这个JTable在修改了之后,要在数据库中同步修改。 

解决方案 »

  1.   

    这个是可以实现的,由于时间关系,我简单讲讲我的思路,你需要在你的程序中加上3个变量,这3个属性分别对应着你说的三列,另外你还要定义一个变量,用来标志选种的行(思路是选种利用这个变量来控制你选种的是那一行,进而告诉另外三个变量需要改变的当前是哪一行),有了这四个变量之后,你就要用到两个类,分别是java.beans.PropertyChangeSupport和PropertyChangeListener,这两个类结合起来,可以实现"对属性值改变的侦听",前者是一个安装属性改变的类,后者是一个侦听器,主要是对前者做出反应.由于时间关系,我就不讲他们怎么用了,你到网上搜一下它的用法,或者是查JAVA API,希望能解决你的问题.
      

  2.   

    谢谢三楼的意见,现在我又遇到一个问题,我从jtextfield中读到的数据插入到jtable中,如何使它立即显示出来,也就是插入一行新的数据到数据库,在jtable中同时显示,我现在做的插入数据后,但在jtable中不同时显示,要重新运行一次,jtable才会更新,要怎样才能实现得到呢
      

  3.   

    使用同一个对象,比如可将数据库取出的数据缓存到list中,table 和 textField 都从这个list中取值,
    那么textField中的值变了,table中对应的值也应该就变了;  在选中另一行时做一个保存处理
      

  4.   

    row为表格选中的当前行,column为指定的Text对应表格中的某列((DefaultTableModel)t.getModel()).fireTableCellUpdated(row, column)不一定是DefaultTableModel,转化成你的TableModel类型
      

  5.   

    使用同一个对象,比如可将数据库取出的数据缓存到list中,table 和 textField 都从这个list中取值, 
    那么textField中的值变了,table中对应的值也应该就变了;  在选中另一行时做一个保存处理
    借用以下,仁兄的方法应该可以
      

  6.   

    直接改List中的值,表格是不是自动刷新的
      

  7.   

    正解,还是需要PropertyChangeSupport 来辅助