❶ java窗口关闭事件。。。。
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
这句话其实是1.4以后才有的,它代替了以前的WindowListener中的windoClose方法,EXIT_ON_CLOSE的意思是,当前窗口在点击版关闭的时候,会关闭主线权程,OK?所以你的所有应用都被关闭了
那么.你就不要这么设置,你的窗口在设置的时候写成,DISPOSE_ON_CLOSE就可以了.DIPOSE就是仅仅释放窗体资源,而不会关闭主线程.
这个DISPOSE_ON_CLOSE静态字段的设置,代替你在windoClose写"this.dispose()"
❷ java线程如何停止
你实现的有问题吧,
有继承线程类,或实现Runnable吗?
如果没有这样,那你做的想当于在同一个线程里做了一个死循环。
下边是个例子,你参考一下,
点开始过度条在动,点一下暂停,会停下来,再点一下暂停又会动起来。
点stop会停下来,你看一下。
----------------------------------------------------------------
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JProgressBar;
import javax.swing.JToolBar;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Table extends JFrame implements Runnable {
private JProgressBar progress = new JProgressBar();
private boolean start = false;
private boolean pause = false;
private JButton btnStart;
public Table() {
setResizable(false);
getContentPane().setLayout(null);
JToolBar toolBar = new JToolBar();
toolBar.add(new JLabel("state"));
toolBar.add(progress);
toolBar.setFloatable(false);
toolBar.setBounds(0, 247, 454, 21);
getContentPane().add(toolBar);
btnStart = new JButton("start");
btnStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
login();
}
});
btnStart.setBounds(12, 10, 91, 21);
getContentPane().add(btnStart);
JButton btnPause = new JButton("Pause");
btnPause.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
pause = !pause;
}
});
btnPause.setBounds(131, 10, 91, 21);
getContentPane().add(btnPause);
JButton btnStop = new JButton("stop");
btnStop.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
start = false;
}
});
btnStop.setBounds(241, 10, 91, 21);
getContentPane().add(btnStop);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(460, 300);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screenSize.width - getWidth()) / 2,
(screenSize.height - getHeight()) / 2);
setVisible(true);
}
public static void main(String[] args) {
new Table();
}
private void login() {
start = true;
btnStart.setEnabled(false);
new Thread(this).start();
}
public void run() {
int value = 0;
while (start) {
try {
if (pause) {
Thread.sleep(50);
continue;
}
progress.setValue(value++);
if (progress.getValue() == progress.getMaximum()) {
break;
}
Thread.sleep(50);
} catch (Exception e) {
}
}
}
}
❸ java Swing 界面关闭事件
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
//新建窗口。回。。。。操作答
//System.out.println("OK");
}
});
❹ JAVA关于窗体JFrame的关闭事件
EXIT_ON_CLOSE是JFrame类的源静态常量,可以直接用类名调用,用F.EXIT_ON_CLOSE也可以调用,但是会有warning,提示JFrame.EXIT_ON_CLOSE是静态量,应该用一个静态方法声明
❺ Java 关闭事件
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
Window w=e.getWindow();
w.dispose();
}
}
);
这个方法放错位置了抄,放在构造方法里就对了,你放在了actionPerformered里面。我发现的是这里,不知道是不是。