JAVAdispose()之后可能的语句如何工作;

JAVAdispose()之后可能的语句如何工作;,java,swing,dispose,Java,Swing,Dispose,我在试验java,并试图创建我的“JOptionPane”。基本上,它是一个返回值的JPanel。(JPanel拥有所有者) 我想让它表现得像JOptionPane,当返回值时,它应该销毁自己 方法是: public Value getValue(){ try{ dispose(); }finally{ return value; } } 我使用了一个try-finally块来确保它将返回值,但是由于更多的“实验”,代码在没有try-fina

我在试验java,并试图创建我的“JOptionPane”。基本上,它是一个返回值的JPanel。(JPanel拥有所有者)

我想让它表现得像JOptionPane,当返回值时,它应该销毁自己

方法是:

public Value getValue(){
    try{
       dispose();
    }finally{
       return value;
    }
}
我使用了一个try-finally块来确保它将返回值,但是由于更多的“实验”,代码在没有try-finally块的情况下工作

dispose()之后语句和方法如何工作

即使这个代码也是有效的

public Person getPerson(){
    dispose();
    System.out.println("aaa");
    printFromMethod();
    return person;
}
在返回值后是否会处理面板?

根据java文档, Dispose方法释放此窗口使用的所有本机屏幕资源、其子组件及其所有子组件

这并不意味着对象可以完成它的功能,因为此方法只清理屏幕资源,不会影响与UI无关的代码


但是,在这种情况下,您不应该从JPanel调用Dispose方法,因为它仍然连接到其父级,因此调用该方法不会达到您想要的效果,而应该做的是在JFrame中调用Dispose方法
Dispose()
方法并不特殊。您预期会发生什么,这与发生的情况有何不同?@GregHewgill dispose不应该关闭窗口?关闭窗口不会停止代码运行。吹毛求疵:非常确定
JPanel
没有
dispose
方法-不确定这是否是您的意思,但它是这样读的;)