Java swing gui内存分配

Java swing gui内存分配,java,swing,user-interface,memory,Java,Swing,User Interface,Memory,您好,我想知道是否有一种方法可以设置一个jbutton来执行与setdefaultcloseoperation(JFrame.DISPOSE_ON_CLOSE)等效的操作,因为我不明白如果一个frame对象在设置为不可见时仍然有侦听器,那么它如何符合收集条件。如果这不合理,我可以发送代码 addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){

您好,我想知道是否有一种方法可以设置一个jbutton来执行与setdefaultcloseoperation(JFrame.DISPOSE_ON_CLOSE)等效的操作,因为我不明白如果一个frame对象在设置为不可见时仍然有侦听器,那么它如何符合收集条件。如果这不合理,我可以发送代码

    addActionListener( new ActionListener(){
                public void actionPerformed(ActionEvent e){
                       myframe.dispose();
                       }
                });
    
  • 顶级容器(
    JFrame
    JDialog
    …)未执行
    finalize()

  • 相当于
    JFrame.DISPOSE\u ON\u CLOSE
    setVisible(false)

  • 您可以从方法
    Window[]wins=Window.getWindows()返回所有顶级容器

  • 您只能从
    ContentPane
    中删除所有
    JComponents
    ,以返回已用内存

编辑

  • 只有焦点为
    的可见容器才能监听或触发事件

再解释一下。我看不出你在问什么。就在你所谓的
JButton
write
frameObject.dispose()的
actionPerformed(…)
方法中,这将给你,你的同等行为:-)甜蜜。谢谢你!!呵呵,非常欢迎您并保持微笑:-)+1,这个信息总是正确的,没有人有能力控制垃圾收集:-),但是如果不写dispose(),至少会让GC可以收集垃圾,尽管只有JVM才能知道何时会发生。是的,我是这么想的。那么setVisible(false)是否使帧侦听器保持打开状态?因此不能使框架符合gc?这是有意义的。我知道我已经理解了您的编辑,焦点是setVisible(bool)打开和关闭的吗?