我在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