如何删除一个JPanel对象啊

平庸老鱼 2006-04-27 12:43:42
程序示例大概是这样的:

public class myFrame extends JFrame {

private MyPanel mypanel;

public dosomething() {
mypanel = new MyPanel( int p, int q);
}

//...........else
}


现在我在程序运行的过程,如果多次的调用dosomething,那知就会生成多个mypanel对象,而且同时存在,请问有什么方法能只存在一个实例吗?也就是说生成一个新对象的同时,要消灭旧对象 程序中肯定要多次调用dosomething., 而且有不同参数的q和q,要生成不同的对象。

请问那位大侠知道怎么实现吗?

...全文
281 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Roy_Sashulin 2006-05-01
  • 打赏
  • 举报
回复
看情况。
我看了贵人的代码,如果多次dosomething方法,那new MyPanel( int p, int q)将是一块垃圾内存,只有最后一次引用的new MyPanel( int p, int q); 才是被作且的。规则如:
MyPanel mypanel;
mypanel = new MyPanel( int p, int q); 第一次调用dosomething
mypanel = new MyPanel( int p, int q); 第二次调用dosomething,第一次引用的new MyPanel没有被作用

mypanel = new MyPanel( int p, int q); 第三次调用dosomething,第一次和第二次的new MYPanel没有被作用。
。。。。。。。。。。。。
没有被引用的内存将是垃圾,系统自动收回。。
代码:system.gc()回收。
平庸老鱼 2006-04-29
  • 打赏
  • 举报
回复
我没有生成新的对象,也没有用单例模式,所以就直接解决了,当然,用单例也是一样的。
relive 2006-04-28
  • 打赏
  • 举报
回复
不懂。。。
请问有什么方法能只存在一个实例吗?也就是说生成一个新对象的同时,要消灭旧对象
这个可以用单例模式,但不懂楼主到底要干什么
平庸老鱼 2006-04-28
  • 打赏
  • 举报
回复
谢谢大家关心,我的问题已经解决了,我是通过使用setter的方法来改变对象的状态的。然后再把其中的相关操作抽出来做成一个initial函数,在setter调用,然后把问题解决了。
平庸老鱼 2006-04-27
  • 打赏
  • 举报
回复
当然,我的意思并不是一定要删除对象,只是说在运行过程中,动态的改变对象的状态。当然,我试着用setter或许可以做到,只是其中有着线程的同步问题,所以,实际的效果是原来的对象还在运行,
当然 ,setvisible肯定不行,因为我还要显示
hemiao_1993 2006-04-27
  • 打赏
  • 举报
回复
如果能删除对象, JAVA就不是JAVA了, 就是C++了.
zzit0721 2006-04-27
  • 打赏
  • 举报
回复
mypanel.setVisible(false);

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧