目前我正在用java编写一个小工具。我遇到的问题如下: 当我按下按钮时,应该有两件事同时开始。
我目前有以下代码,它可以完美地发送电子邮件,但没有可见的图像。我也尝试启动一个新的Thread但是从SendEmail类中得到了很多例外。有什么建议吗?
validationQuery, testOnCreate, testOnBorrow, testOnReturn, testWhileIdle
更新
似乎有订单。首先发送电子邮件,然后即使我 btnWeiter4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
URL loader = KeyLogger.class.getResource("/ajax-loader.gif");
JLabel loading = new JLabel("loading ...\r\n");
loading.setIcon(new ImageIcon(loader));
loading.setVisible(true); // show loading image
loading.setBounds(1087, 599, 121, 45);
panel_4.add(loading);
SendEmail email = new SendEmail();
email.send(); // sends email
}
});
一开始就显示我的加载图像。
解决方案:
我使用匿名内部类来创建新线程以发送电子邮件,我将setVisible(true)
移到了file.delete();
类中。适合我的工作
SendEmail
答案 0 :(得分:0)
我认为问题是setIcon方法需要String而不是URL,请尝试这样做。
更新现在,您可以查看代码执行的确切时间
btnWeiter4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
JLabel loading = new JLabel("loading ...\r\n");
loading.setBounds(1087, 599, 121, 45);
loading.setIcon(new ImageIcon("ajax-loader.gif")); // Check whether the gif file is really in the root folder
loading.setVisible(true); // show loading image
String currentTime = String.valueOf(System.currentTimeMillis());
System.out.println("Im done with JPanel " + currentTime);
panel_4.add(loading);
SendEmail email = new SendEmail();
email.send(); // sends email
String currentTime2 = String.valueOf(System.currentTimeMillis());
System.out.println("Im done with Email sending " + currentTime2);
}
});