我想在计时器用完时在工具栏中显示一条消息。 这是我的代码:
private void startJButtonActionPerformed(java.awt.event.ActionEvent evt) {
Timer oneHour = new Timer(3600000, //RunTheActionPerformedShownBelow);
}
public void ReminderTrayIco() {
item3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
trayIcon.displayMessage("Title", "Message", TrayIcon.MessageType.ERROR);
}
});
}
我想要完成的是在计时器达到0时运行'item2.addActionListener'下的代码。我觉得好像有一个非常简单的解决方案就在我的鼻子底下,但我不能想办法。 任何帮助表示赞赏!
答案 0 :(得分:1)
首先编写一个执行所需操作的自定义ActionListener
类...
public class TrayMessageActionListener implements ActionListener {
private TrayIcon trayIcon;
public TrayMessageActionListener(TrayIcon trayIcon) {
this.trayIcon = trayIcon;
}
@Override
public void actionPerformed(ActionEvent e) {
trayIcon.displayMessage("Title", "Message", TrayIcon.MessageType.ERROR);
}
}
现在您可以将其与item3
...
item3.addActionListener(new TrayMessageActionListener(trayIcon));
和计时器......
Timer oneHour = new Timer(3600000, new TrayMessageActionListener(trayIcon));
oneHour.setRepeats(false);
这显然意味着item3
和Timer
代码在创建时都需要访问同一个TrayIcon
实例