当前位置: 首页 > 面试题库 >

如何在Java中正确处理计时器?

夏雅志
2023-03-14
问题内容

我希望我的计时器一次执行一次actionPerformed方法(5秒一次),但是它多次在控制台“ Hello”中写入:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Timer;

public class X{
    public static void main(String args[]) {

        ActionListener actionListener = new ActionListener() {
            public void actionPerformed(ActionEvent actionEvent) {
                System.out.println( "Hello" );
            }
        };
        Timer timer = new Timer( 5000, actionListener );
        timer.start();
    }
}

如何产生想要的效果?谢谢


问题答案:

如前所述,最好使用java.util.Timer,但也可以在开始之前使用setRepeats():

timer.setRepeats(false);


 类似资料:
  • 问题内容: 用Java产生和使用外部进程的流(IO)的正确方法是什么?据我所知,由于可能的缓冲区大小有限,因此应在与生成进程输入并行的线程中使用java结束输入流(进程输出)。 但是我不确定我是否最终需要与这些使用者线程进行同步,或者仅等待进程退出以使用方法就足够了,以确保所有进程输出实际上都被消耗了?IE是否有可能,即使进程退出(关闭其输出流),流的Java端仍存在未读数据?实际如何知道该过程何

  • 我正在创建一个android应用程序,它需要一个到服务器的永久TCP连接。 我创建了一个服务,用于建立连接并侦听Inputstream上的传入字节(该服务在后台运行)。 前4个传入字节表示完整消息的消息长度。 在将完整的消息从Inputstream读入单独的缓冲区后,我想在分析消息的单独线程中调用另一个服务/异步任务。(服务应继续侦听更多传入消息)。 Android/Java中是否有一个现有的Me

  • 问题内容: Java的I / O类,,,和他们的不同子类中都有一个可抛出的方法。 对于处理此类异常的正确方法是否存在共识? 我经常看到建议,只是默默地忽略它们,但这是错误的,至少在打开用于写的资源的情况下,关闭文件时出现问题可能意味着无法写入/发送未刷新的数据。 另一方面,在阅读资源时,我还不清楚为什么会抛出异常以及如何处理。 那么有什么标准建议吗? 问题答案: 记录下来。 您实际上不能 做任何事

  • 在我的REST API中,我有一个过滤器,该过滤器检查每个请求,以查看令牌是否是原样。下面是代码。 当用户登录到应用程序时,将调用上述代码。但是,令牌将在60分钟内过期。我知道,在令牌过期后,要么我必须带用户返回登录屏幕,要么刷新令牌。我把这里和这里的建议都看了一遍 但我不明白以下几点。 如何分配并将此令牌发送回用户?当前,当用户登录时,他将获得令牌并将其保存在一个变量中。为了使刷新的令牌工作,我

  • 问题内容: 当程序收到终止信号时,如何处理清理? 例如,有一个我连接的应用程序希望任何第三方应用程序(我的应用程序)在注销时发送命令。当我的应用被a破坏时,发送该命令的最好的说法是kill -9什么? 编辑1:不能杀死-9。谢谢你们纠正我。 编辑2:我想这种情况将是当那只叫杀死与ctrl-c相同 问题答案: 用任何语言的任何程序都不可能处理SIGKILL。这样一来,即使程序有错误或恶意,也总是可以

  • 问题内容: 昨天我对一个问题的回答之一是建议我确保我的数据库可以正确处理UTF-8字符。我该如何使用MySQL? 问题答案: 更新: 简短答案-您几乎应该始终使用字符集和排序规则。 更改数据库: 看到: 亚伦对此答案的评论如何使MySQL正确处理UTF-8 utf8_general_ci和utf8_unicode_ci有什么区别 转换指南:https : //dev.mysql.com/doc/r