Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JLabel在面板中显示计时器_Java_Eclipse_Timer_Jpanel_Jlabel - Fatal编程技术网

Java 使用JLabel在面板中显示计时器

Java 使用JLabel在面板中显示计时器,java,eclipse,timer,jpanel,jlabel,Java,Eclipse,Timer,Jpanel,Jlabel,所以我和一位同学一起做了一个程序,我们对GUI没有太多经验,但我想做的是在一个侧面板上显示一个计时器,显示用户完成一个拼图需要多长时间(有一个主游戏区,旁边有一个带按钮的侧面板等等)但我不确定如何让JLabel随着用户解决难题所花的时间不断更新。 我不知道如何使用timer对象来实现这一点,所以我现在只尝试使用System.nanoTime() 1) 如果我使用的是计时器对象,那么在Action listener参数中使用什么?这将调用timerLabel.updateUI()

所以我和一位同学一起做了一个程序,我们对GUI没有太多经验,但我想做的是在一个侧面板上显示一个计时器,显示用户完成一个拼图需要多长时间(有一个主游戏区,旁边有一个带按钮的侧面板等等)但我不确定如何让
JLabel
随着用户解决难题所花的时间不断更新。 我不知道如何使用timer对象来实现这一点,所以我现在只尝试使用
System.nanoTime()

1) 如果我使用的是计时器对象,那么在Action listener参数中使用什么?这将调用
timerLabel.updateUI()
2) 如果不使用timer对象,那么持续更新时间的最佳方法是什么

//Timer timer = new Timer(1000, new ActionListener(??));
//timer.start();
long start = System.nanoTime();
String time = new java.text.SimpleDateFormat("ms").format(new java.util.Date(start/1000000));
timerlabel = new JLabel(time);
sideMenu.add(timerlabel);
timerlabel.updateUI();

您似乎不了解如何使用
ActionListener
ActionListener
不接受任何参数,因为它是一个接口;相反,您重写了它的
actionPerformed
方法。您可能正在寻找的是:

Timer timer = new Timer(1000, new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent ev) {
        // Whatever action you want to happen every 1000 milliseconds
        timerLabel.setText(new java.text.SimpleDateFormat("ms")
            .format(new java.util.Date(System.nanoTime()/1000000)));
    }
});
timer.start();

有关更多详细信息或一个非常好的示例,请参阅。

在.updateText行中,它说它是类型JLabel的一个未定义方法,JLabel中是否有任何方法可以像这样更新自身?Its.setText,所以现在我排除了这个错误,它实际上似乎从未更新过,它不是应该每1000毫秒改变一次吗?我的系统。纳米时间超出了actionPefromed方法,解决了它,谢谢你的帮助@ShadowBlade对不起,我的意思是
setText
,而不是
updateText
。我会编辑的。如果这个答案对你有用,请接受它!顺便说一句,很高兴我能帮助你。:)