我目前正在尝试向程序添加功能,这样如果用户关闭子窗口,它也将关闭创建它的父窗口。我启动启动程序,在菜单中选择一个创建父窗口的选项,然后创建子窗口。该程序已经有一个endProcess
函数,可以将内容输出到父窗口,因此我认为它是完成此任务的好地方。这是函数:
private synchronized void endProcess(Exec.FinishedEvent e) {
exec.removeFinishedListener(this);
exec = null;
String str;
if (e.getExitValue() != 0) {
JOptionPane.showMessageDialog(this, exec, "Exec '"+e.getExec()+"' failed: return value: "+e.getExitValue(), JOptionPane.ERROR_MESSAGE);
str = "Process FAILED [exit="+e.getExitValue()+"]: '"+e.getExec()+"'\n";
} else
str = "Process Done [exit="+e.getExitValue()+"]: '"+e.getExec()+"'\n";
statusLabel.setText(str);
outputTextArea.append("*****" + str);
//this.dispose();
//this.dispatchEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
我尝试添加的两个注释掉的行。 (两个不同的想法)这两个都正常工作,当我关闭子窗口时,父窗口也关闭。但是,它也会冻结原始程序窗口,并且不会响应任何内容。我相信我在某种程度上也会在原始程序窗口中调用某种杀戮功能?谢谢,如果我需要提供其他任何内容,请告诉我们!
澄清......
原始程序=启动程序时首先打开的窗口
父窗口=命令我在原始程序中运行以生成子窗口(我希望关闭这个窗口,而不是关闭孩子时的原始程序)
子窗口=从父窗口创建的窗口,我希望在子窗口关闭时关闭父窗口。