如何从JinternalFrame调用JinternalFrame而不丢失调用Swing中的frame控件



我在SWING中从XYZ jINternalFrame调用ABC jINternalFrame

但是当我调用ABC时,我失去了XYZcontrol

我想要的是

- XYZ用户选择加载产品数据的选项
-IF不匹配发现XYZ调用ABC
- ABC -用户纠正错配并关闭ABC帧
现在我想让程序从ABC

开始

目前它调用ABC和XYZ得到执行我怎么能做到这一点?我使用下面的代码

if (frmUpdateData == null || frmUpdateData.isClosed()){ 
  frmUpdateData = new FrmUpdateData(); 
  JDesktopPane desktopPane = getDesktopPane(); 
  desktopPane.add(frmUpdateData); 
  frmUpdateData.setVisible(true); 
  frmUpdateData.setLocation(this.getWidth()/2- frmUpdateData.getWidth()/2, this.getHeight()/2-frmUpdateData.getHeight()/2); 
}

显示使用模态对话框:

final JDialog frame = new JDialog(parentFrame, frameTitle, true);
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);

当您显示一个模态对话框时,调用模态的代码正在等待模态对话框关闭以继续执行。它就像JavaScript中的alert

如果你想要使用JDialog,你可以试试:

    JInternalFrame frmUpdateData = null;
    frmUpdateData = new JInternalFrame("Test", true, true);
    frmUpdateData.setBounds(0, 0, 200, 200);
    JDesktopPane desktopPane = new JDesktopPane();
    desktopPane.setBounds(0, 0, 600, 600);
    desktopPane.add(frmUpdateData);
    desktopPane.setVisible(true);
    frmUpdateData.setVisible(true);
    JFrame frame = new JFrame();
    frame.setBounds(0, 0, 600, 600);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().add(desktopPane);
    frame.setVisible(true);
    while (frmUpdateData != null && !frmUpdateData.isClosed()) {
        try {
            Thread.sleep(100);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    JOptionPane.showMessageDialog(null, "Done");

参考:Stackoverflow

相关内容

  • 没有找到相关文章

最新更新