次のコードをご覧ください
private class EmergencyAlertNotifier implements Runnable, ActionListener
{
JDialog dialog = new JDialog();
int number=0;
JLabel message;
JButton yes,no;
String messageStr;
public EmergencyAlertNotifier()
{
dialog.setLayout(new BorderLayout());
//The JLabel which will display the number of seconds left
//before alerting emergency services
message = new JLabel();
messageStr="number";
yes = new JButton("OK");
yes.addActionListener(this);
no = new JButton("Cancel");
no.addActionListener(this);
JPanel btnPanel = new JPanel();
btnPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
btnPanel.add(yes);
btnPanel.add(no);
dialog.add(message,"Center");
dialog.add(btnPanel,"South");
dialog.setTitle("Ready To Notify Emergency Fire Services");
dialog.setVisible(true);
dialog.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
@Override
public void run()
{
for(int i=10;i>0;i--)
{
message.setText(messageStr+i+" Sec.");
try
{
Thread.sleep(1000);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
@Override
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==yes)
{
}
else
{
dialog.dispose();
}
}
}
スレッドは上記のクラスの外で開始されます
new Thread(new EmergencyAlertNotifier()).start();
スレッド内の番号を変更してJLabelを更新しようとしています。しかし、代わりに、JLabelはGUIに来ていません。何故ですか?助けてください!