主题:[讨论]求助关于JFrame 关闭问题!谢谢高手!
clinglove
[专家分:10] 发布于 2008-03-28 22:32:00
路过的java高手,麻烦您停下脚步,帮帮我,这个问题怎么解决.谢谢!
问题:
当我点事件按纽新建Frame,接着如何实现 点当前frame内的按纽来关闭当前 frame,最后 跳转到 打开frame之前的状态. 并且不是通过 setVisible(true)! 这样实际就是把当前的frame给毁灭掉,而不是隐藏!
我试过一种方法:setDefaultCloseOperation(); 这方法跟 System.exe(0);一样,把全部给关了,不是我要的效果!
万分感谢!
回复列表 (共5个回复)
沙发
happyboy2007 [专家分:3900] 发布于 2008-03-29 09:43:00
//不知道你是不是这个意思
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Demo extends JFrame implements ActionListener
{
private JButton but_open = new JButton("打开");
private AnotherFrame frame = new AnotherFrame();
public Demo()
{
this.getContentPane().add(but_open,"North");
but_open.addActionListener(this);
this.setSize(600,400);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main (String[] args)
{
new Demo();
}
public void actionPerformed(ActionEvent e)
{
frame.setVisible(true);
}
}
class AnotherFrame extends JFrame implements ActionListener
{
private JButton but_close = new JButton("关闭");
public AnotherFrame()
{
this.getContentPane().add(but_close,"South");
but_close.addActionListener(this);
this.setSize(300,200);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{
this.setVisible(false);
}
}
板凳
clinglove [专家分:10] 发布于 2008-03-29 19:40:00
happyboy:我测试了下,确实是我需要的效果.但是没有达到我心理的理想效果!
因为:我打开进程时发现. 当点打开, 然后关闭时如果不是用关闭按纽.内存几乎没什么变化. 但是点了关闭,却有很大的浮动! 所以,你用的 setvisible应该只是隐藏了frame,而不是真正的把这关闭的frame在内存中删除! 我所理想的效果就是希望 JFrame.DISPOSE_ON_CLOSE 能够用在 actionPerformed 方法内,可惜没成功,跟没写一样!55555! 意思就是:当点关闭按纽 和 右上角 的默认关闭 一样效果!
3 楼
w375893296 [专家分:0] 发布于 2008-03-30 16:22:00
在这里有没软件高手的,有的话加入群58773512,一起深度探索软件界的一切奥妙..........[em2]
4 楼
liuxzhe [专家分:50] 发布于 2008-04-14 17:20:00
那在CPU上可以减少内存的占有资源的关闭 ?
不是网页的关闭??
5 楼
飞侠 [专家分:1380] 发布于 2008-04-15 00:31:00
试试 dispose()
我来回复