Java的。在dispose()之后,可能的语句如何工作;

时间:2014-09-08 23:02:34

标签: java swing dispose

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

我想使它的行为类似于JOptionPane,它应该在返回值时自行销毁。

方法是:

public Value getValue(){
    try{
       dispose();
    }finally{
       return value;
    }
}

我使用了try - finally块来确保它会返回值,但是有了更多的“实验”代码可以不用尝试 - finally块。

如何在dispose()之后使用语句和方法?

即使此代码有效

public Person getPerson(){
    dispose();
    System.out.println("aaa");
    printFromMethod();
    return person;
}

在返回值后面板会被处理吗?

1 个答案:

答案 0 :(得分:2)

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

这并不意味着对象可以执行此功能,因为此方法仅清除屏幕资源,并且不会影响与UI无关的代码。

但是在这种情况下你不应该从JPanel调用Dispose方法,因为它仍然附加到它的父级,所以调用方法将无法实现你想要的,而你应该做的是调用JFrame中的Dispose方法