运行 方法来自另一个方法 - Java

Run method from another method - Java

我希望在计时器 运行 结束时在工具栏中显示一条消息。 这是我的代码:

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' 下的代码。我觉得好像有一个非常简单的解决方案就在我眼皮底下,但我就是想不通。 感谢您的帮助!

首先编写一个执行所需操作的自定义 ActionListener class...

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);

这显然意味着 item3Timer 代码在创建时都需要访问 TrayIcon 的同一个实例