네트워크 연결을 설정하려고하는데 자세한 내용은 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)하지 않고, 빈 프레임을 보여줍니다 내가 네트워크 연결을 완료하면,이 대기 메시지를 제대로 보여줍니다.
어디서 잘못 될까요? 이것은 스윙 문제 (또는) 스레드 문제입니까?
백엔드 활동이 완료 될 때까지 대기 메시지를 표시하도록 도와주십시오.
당신이 'waitDialog.setSize (100, 40)'라고 부른 재미있는; waitDialog.setBounds (500,300, 300, 80); ''setBounds'는 한 번에 setLocation()과 setSize()를 호출하기위한 바로 가기입니다. –