我做了一个多文档界面,上面有很多菜单,点击一个菜单弹出一个InternalFrame,InternalFrame是由Panel构成的,Panel上有一个Table组件,是有滚动条的那种,我设置这个Table是public static类型的。
问题是:我第一次打开,就new了一个jTable,关闭InternalFrame,再打开,重新new了一个jTable,但是原来那个jTable还存在,要怎么删除原来那个,没删除掉的话对我接下来的一些操作影响很大~~~~
我用remove好像都不行~
问题是:我第一次打开,就new了一个jTable,关闭InternalFrame,再打开,重新new了一个jTable,但是原来那个jTable还存在,要怎么删除原来那个,没删除掉的话对我接下来的一些操作影响很大~~~~
我用remove好像都不行~
2.你用的是public static类型,难道你的意思不是想用单例模式?即Table对象只声明一个,new的时候改变table内容就好了
Table的代码是private JTable getJTable() {
if (jTable == null) {
jTable = new JTable();
}
return jTable;
}
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new Rectangle(10, 120, 680, 271));
jScrollPane.setViewportView(getJTable());
}
}
return jScrollPane;
}
jTable = new JTable();
} 如果JTable是Public static的话,这一段应该在第二次的时候是走不进去的吧
你remove只是将JTable从panel中拿掉,并不会将JTable对象dispose“但是第二次打开的话 就找不到jTable了,就只显示一个框框,没有表格 ”第一次生成的JTable被remove了第二次又无法生成新的,当然只能显示个框框啦,那个框框应该就是JScrollPane
你说的没错~但是我没有remove,第二次打开的时候也看不到table啊,要怎样才能得到原来的那个table?
我不是想用单例模式,Panel上面有个添加按钮,点击 弹出一个Frame的添加界面 确定后添加某些东西在Table上,这时要立即刷新Table 我就在Frame重画Table所以才设置成public static。。