单击按钮可使JInternalFrame出现一次,即使最小化也是如此

时间:2018-07-16 15:10:22

标签: java swing

下面的这段代码使JInternalFrame在JFrame内的JDesktopPane上弹出

JInternalPane adf = new JInternalpane();
JDesktopPane.add(adf);
adf.show();

,但是当InternalFrame被图标化或在DesktopPane上仍可见时,再次单击使显示InternalFrame的Action_Button时,将再次弹出另一个相同类型的InternalFrame。并不断弹出,直到单击该按钮为止。
请如何生成代码,以便在单击按钮时首先应检查internalFrame是否已图标化,然后使其再次可见。而不是弹出另一个内部框架。
我在jdk 8中使用了netbeans ide。
当我右键单击按钮,选择“事件”,然后执行“动作”时,将执行button_action,到目前为止,我只编写了此代码。

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
JInternalPane adf = new JInternalpane();
JDesktopPane.add(adf);
adf.show();
// TODO add your handling code here:
        }

谢谢

1 个答案:

答案 0 :(得分:0)

您需要为内部框架保留一个实例变量,以便了解当前状态。

然后,ActionListener中的代码将类似于:

if (internalFrame == null) // not yet created
{
    internalFrame = new JInternalFrame(...);
    desktopPane.add( internalFrame );
    internalFrame.show();
}
else if (internal frame is iconified) // read the API for the method to use
{
    //  show the internal frame
}