java - 将 Swing 计时器的操作监听器中的 System.currentTimeMillis() 分配回未初始化的 long 变量

标签 java swing variables timer actionlistener

我目前正在研究服务器和客户端。我希望我的服务器每秒轮询当前系统时间。我目前正在使用 Swing 计时器将 currentTimeMillis() 分配回计时器的 Action 监听器之外的未初始化的 long 。目前,当我尝试执行此操作时,Eclipse 要求我给出长时间的最终状态,但由于这需要轮询和更改,所以这是不可行的。这个想法是,这个 long 将被告知通过套接字发送到客户端。我怎样才能让它与我当前的代码一起工作?或者如果有更好的方法可以做到这一点,我该怎么做?非常感谢您的帮助!

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.net.*;

import javax.swing.Timer;


public class Server {


public static void main(String[] args) {

      long time;

      ActionListener listener = new ActionListener(){
          public void actionPerformed(ActionEvent event){
              time = System.currentTimeMillis();          
          }
        };
        Timer currentTime = new Timer(1000, listener);
        currentTime.start();
}

}

最佳答案

您可以将time设为该类的一个字段。 (事实上​​,将它放在 main 中是没有意义的!

或者你可以设置final AtomicLong time = new AtomicLong();

关于java - 将 Swing 计时器的操作监听器中的 System.currentTimeMillis() 分配回未初始化的 long 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14167564/

相关文章:

java - 如何设计包含大量数据的JMS消息

java - JWindow 区域不透明度

java - 当我的 JFrame 恢复(取消图标)时,如何重新绘制内容?

python - 如何传递本地变量并直接从另一个函数访问变量?

c# - 将特定字符串/整数转换为小数

java - 无法绕过 ClassCastException

java - 尝试使 JTable 中的链接可单击时出现未处理的异常类型 URISyntaxException

java - 当 GUI 不更新信息时,使用多线程 SWING 处理 GUI

javascript - 函数在 JS 华氏温度到摄氏度转换器中不起作用

java - 外部任务执行完成 'signingReport'