【发布时间】:2011-10-12 04:09:50
【问题描述】:
我正在尝试使用下面的方法实现一个图像,以便在执行发送操作时,GIF图像应该在指定的时间内显示(通过threadRunner暂停方法实现)。
问题是它没有显示。在测试中,当我禁用 stop() 时,它与不应该出现的 delLiveryReport Textarea 同时出现。我该如何解决这个问题。
private void sendActionPerformed(java.awt.event.ActionEvent evt) {
threadRunner t = new threadRunner();
String fone = "";
SendSMS sms = new SendSMS();
String[] arMSISDN = msisdn.split(",");
for (int i = 0; i < arMSISDN.length; i++) {
fone = arMSISDN[i];
fone = fone.trim();
try {
Cursor cursor = new Cursor(Cursor.WAIT_CURSOR);
setCursor(cursor);
t.pause(loading);
sms.sendSMS(user, pass, fone, senderIDString, msgString);
} catch (Exception e) {
e.printStackTrace();
} finally {
Cursor normal = new Cursor(Cursor.DEFAULT_CURSOR);
setCursor(normal);
t.stop(loading);
deliveryReport.append(fone + ": " + sms.response + "\n");
}
}
// JOptionPane.showMessageDialog(rootPane, deliveryReport);
deliveryReport.setVisible(true);
jScrollPane2.setVisible(true);
redo.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
redo.setForeground(new java.awt.Color(223, 90, 46));
redo.setText("Would you like to send another Message?");
yes.setEnabled(true);
no.setEnabled(true);
yes.setText("Yes");
no.setText("No");
back.setEnabled(false);
send.setEnabled(false);
}
线程运行者
public void pause(JLabel label){
try {
Thread.sleep(5000);
label.setVisible(true);
} catch (InterruptedException ex) {
Logger.getLogger(threadRunner.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void stop(JLabel l){
l.setVisible(false);
}
【问题讨论】:
标签: java multithreading swing