【发布时间】:2019-01-24 10:15:13
【问题描述】:
在我的 Swings Windows 应用程序中,单击运行按钮后会执行一些操作。如果我在操作仍在进行时尝试关闭窗口,则关闭操作不起作用。完成流程执行后,只有关闭窗口操作才有效。否则不会响应关闭操作。
我已经尝试过下面提到的代码。但是那个并没有停止工作
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
or
System.exit(1);
or
setDefaultCloseOperation(EXIT_ON_CLOSE);
or
setDefaultCloseOperation(3);
or
dispose();
}
});
JButton jb = new JButton("Run");
add(jb);
jb.setBounds(10, 30, 100, 30);
setSize(150,150);
setLayout(null);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
});
jb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
{
// some operations . For Example here i'm add 1E5 data,s in my collection object. again i will replace data's places of each element.
for(int i=0;i<1E5;i++)
{
ll.add(i);
}
for(int i=0;i<1E5;i++)
{
ll.add(1,i);
}
for(int i=0;i<1E5;i++)
{
ll.add(0,i);
}
System.out.println(ll);
}
});
如果我点击关闭按钮,我的窗口会终止当前执行的进程并关闭窗口。
【问题讨论】:
-
您是否尝试过在单独的线程中完成运行操作?
-
能否提供MCVE
-
Stultuske 我不熟悉线程。所以请为我提供一些该过程的示例代码。
-
参见General Information about Writing Event Listeners:“关于事件侦听器要牢记的最重要规则是它们应该非常快速地执行。”它继续说:“有关使用线程的帮助,请参阅Concurrency in Swing.”
标签: java jvm terminate formclosing