我正在嘗試建立網絡連接,並且詳細信息位於JFrame中。當用戶點擊一個按鈕時,它應該啓動新的線程,並應該向用戶顯示等待消息,直到主線程建立網絡連接。我寫了這個代碼未顯示框架的新線程
public void actionPerformed(ActionEvent arg0) {
Thread ref = new Thread(new Test());//Create a new thread
ref.start();
new AIDRTConnManager().createConnection(ipAddress, portAddress);//main thread
}
//This is my Thread Class
public class Test implements Runnable{
JDialog waitDialog;
JPanel panel1 = new JPanel();
JLabel waitLabel;
JFrame frame;
public void run(){
frame = new JFrame();
waitDialog = new JDialog(frame,AIRDT.toolName, true);
waitDialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
JLabel waitLabel = new JLabel("Trying to Connect to PleaseWait...",ErrorDialog.icon,SwingConstants.CENTER);
panel1.add(waitLabel);
waitDialog.add(panel1);
waitDialog.setSize(100, 40);
waitDialog.setBounds(500,300, 300, 80);
waitDialog.setVisible(true);
}
}
但是,當我按一下按鈕,所有JDialog顯示空框,無需等待消息(JLable)有一次我與網絡連接完成後,此等待消息顯示正確。
我哪裏去錯了?這是一個Swing問題(或)線程問題?
您能不能幫我展示一個等待消息,直到完成後端活動?
有趣的是,你調用'waitDialog.setSize(100,40); waitDialog.setBounds(500,300,300,80); ''setBounds'是一次調用setLocation()和setSize()的快捷方式。 – 2013-02-20 08:49:29