每个人,所以我们在学校有这个GUI项目,它涉及在两个JFrame之间切换,一次只能看到一个JFrame。
因此,我当前的实现在切换到另一帧时隐藏了前一帧,反之亦然。单击按钮时,我们使用frame.dispose()
。它似乎做得很好,但正如我的同学所说,它可能有一些记忆浪费问题。
我在网上搜索过,有人说它清除了内存,但有人说它只是隐藏了框架,所以基本上这意味着当我隐藏一个jframe时,它仍然存在,而我们的程序涉及大量切换,所以这意味着数十个“隐形框架”开启了。
所以,如果这一切都是真的,那么在JFrame之间切换的其他选择是什么?
不,删除多个JFrame部分不是一种选择。
编辑:我忘了提及,当切换帧时,一些信息会更新(它涉及一个JList)。因此,我必须再次调用框架以查看更改。
这是我更新值的方式(它就像一个迷你数据库的东西):
JButton btnNewButton = new JButton("Remove Contact");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
personToRemove=list.getSelectedValue().toString();
dispose();
Main.handler.remove(cstring);
Main.main(args);
}
}
});
所以代码所做的就是再次调用帧来显示新的JList数组(删除了Contact)。它不是真正的转换,但仍然是相同的概念。
提前致谢!