2 qq 28412711 qq_28412711 于 2016.01.27 10:52 提问

java中dispose()与setVisible()

dispose()与setVisible()这两个究竟有什么区别???

2个回答

bdmh
bdmh   Ds   Rxr 2016.01.27 10:53
已采纳

dispose是销毁对象,setVisible只是设置对象是否可见,它依然存在

qq_28412711
qq_28412711 dispose大致是不是让内存多点啊
接近 2 年之前 回复
91program
91program   Ds   Rxr 2016.01.27 11:09

1.首先 一个窗体 如果dispose()以后,如果,用窗体对象.setVisible(true);能够显示的话,
说明你没设置窗体的默认关闭方式 。。 具体你可以看看 setDefaultCloseOperation();这个方法的API说明 。 如果,你没有设置窗体关闭方式 。 点击关闭窗体,或是程序调用dispose() 内部实现方式,都只是把窗体隐藏 == setVisible (false);

  1. 构造方法,只能是通过 new 窗体对象来调用 。。

    引申上面的问题 。 。 。 如果你改变窗体默认关闭方式 手动设置 setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    在窗体里 调用 dispose(); 就会完全关闭窗体 ,并释放窗体资源 (不能通过setVisible重新显示)

  2. 这个很简单 。 。 你考虑单利模式 就行了 。。 把窗体类做成单利模式 。 。
    单利模式的意义就是 ,在程序的运行时,类实例只会存在一个。 也就是说,只要你没释放这个类资源 。 它只存在一个。 。

       写的太多了。 。 单利模式,你自己百度一下吧。。总的来说很简单
    
            私有构造方法。。
          定义静态内部实例。
       提供公有静态 创建并返回实例的方法
    

    以下资料,可以掠过。 以下为 setDefaultCloseOperation ()方法API解释。

    DO_NOTHING_ON_CLOSE(在 WindowConstants 中定义):不执行任何操作;要求程序在已注册的 WindowListener 对象的 windowClosing 方法中处理该操作。
    HIDE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册的 WindowListener 对象后自动隐藏该窗体。
    DISPOSE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册 WindowListener 的对象后自动隐藏并释放该窗体。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!