比如:首先单击客户按钮,在JScrollPanel(sp)中显示一张客户表,
再单击供货商按钮,在sp中也确实可以显示出供货商表,但当单击表列名那一行时,整个表又变回客户表的内容。就是当单击表列名或试图改变某单元格宽度时,整个表变回显示打开的第一张表的内容。
这怎么解决?
再单击供货商按钮,在sp中也确实可以显示出供货商表,但当单击表列名那一行时,整个表又变回客户表的内容。就是当单击表列名或试图改变某单元格宽度时,整个表变回显示打开的第一张表的内容。
这怎么解决?
解决方案 »
- 面试题:new的三个动作是什么
- 问什么我的程序不能做出排列组合的结果
- synchronizedList的作用???真的很困惑。有没有高手来理清一下?
- JNI机制中如何Get嵌套的对象数组
- 大哥们给小弟个答案啊!为什么不能运行
- 哪位前辈有GUI设计得比较好的源码,可以共享一下,学习下,对于GUI设计实在不行
- '\r'与'\n'到底有何区别啊?请高手指教!
- java 中的 ^ 是什么意思?
- 救命呀,这样的事务为何不行呀?????????????
- 和字符串有关的一个问题。(在线等)
- 【新手提问】请前辈帮我看看这段代码有没有什么问题..为什么不能显示JTable呢!!!
- public static void main(String args[])
建议你去重写AbstractTableModel里面的fireTableChanged(TableModelEvent e)方法TableModelEvent可以匹配各种发生在JTable上的事件,任何一个事件都会触发此函数,
你先判断发生的是否是你试图监视的改变列宽等,然后就可以通过Event得到Source产生响应
还有就是,如果JTable没有设置setEnable(),单击某一个单元格,这一行也会显示第一次显示的表的内容,则应该遇上一个问题是一个毛病吧???
public static void showTable(MainFrame mf, AbstractTableModel tableModel) {
JScrollPane sp = mf.getScrollPane(); //获取编辑区
//移除旧表
if(sp != null) {
mf.validate(); //
sp.removeAll(); //不知道哪个有用,
sp.updateUI(); // 索性全用上了
mf.remove(sp); //
}
JTable table = new JTable();
table.setModel(tableModel); tableModel.fireTableStructureChanged();// JTable刷新结构
tableModel.fireTableDataChanged();// 刷新JTable数据 //添加显示新表
sp = new JScrollPane(table);
mf.add(sp,BorderLayout.CENTER);
mf.validate();
}实际用时,我传入的是一个 DefaultTableModel
建议楼主
new 两个不同的table 一个存放客户表table1,一个存放供货商表table2。
sp.removeAll();
sp.add(table1 or table2, BorderLayout.CENTER);
sp.updateUI();你不要拿JFrame做文章。
我觉得我的SQL那里应该没问题,也是用Vector保存的,我验证过,数据是没错的,
主要是显示问题,每次更换表时就出现那种情况:单击某一单元格,就显示出显示的第一张表的该位置行的内容,
好象是第一张表出现后就没有删掉,我企图找寻一下显示第一张表时的代码有什么问题,但那代码也是和显示以后的表一样的呀。
天啊~~,这问题我都研究好几天了,没有搞头,所以到这里来求助,解大家的力量帮我一把,同时我继续往下写其他代码。大家来帮忙啊,我知道高手很多啊,不要吝啬呀,哈哈。