当前位置:编程学习 > JAVA >>

swing 事件处理的时为什么会这样?

package com.bonson.frame;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

/**
 * 
 * @date 2013-12-19 下午11:44:33
 * @author qinfz
 *
 */
public class Test extends JFrame {


public Test(){
JButton b=new JButton("确定");
this.add(b);
b.addActionListener(new ActionListener(){

@Override
public void actionPerformed(ActionEvent e) {
Test2.getInstance().setVisible(true);
for(int i=0;i<1000;i++){
for(int j=0;j<1000;j++){
System.out.println(1);
}
}
Test2.getInstance().setVisible(false);

}

});
this.setBounds(100,100, 200, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.validate();
}
/**
 * @date 2013-12-19 下午11:44:33
 * @author qinfz
 * @param args
 */
public static void main(String[] args) {
new Test();
Test2.getInstance().setVisible(true);
for(int i=0;i<1000;i++){
for(int j=0;j<1000;j++){
System.out.println(1);
}
}
Test2.getInstance().setVisible(false);
}

}

class Test2  extends JFrame{
private static Test2 t=new Test2();
public static Test2 getInstance(){
return t;
}
private Test2(){
JLabel b=new JLabel("你好");
this.add(b);
this.setBounds(300,100, 200, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.validate();
}
}
这段代码里主线程的Test2窗口能正常显示,但是test按钮的事件处理中test2窗口的组件不能正常显示,为什么?我的需求是用户点击保存按钮先打开一个请稍后的提示窗口,然后客户端将数据发到服务器端保存,服务器端返回数据后关闭提示窗口,可提示窗口的内容始终显示不出来
--------------------编程问答-------------------- 我运行了下,是可以显示出来的,只不过一直在刷新。
你事件处理代码有问题吧。
你for循环和Test2.getInstance().setVisible(true);在同一个线程里面。
Test2窗口刚显示出来,线程就去打印for循环了,Test2窗口都死了!!! --------------------编程问答-------------------- sing是单线程的 注意
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,