将非String变量发送给JLabel

时间:2016-05-05 04:01:04

标签: java swing jlabel

我想知道JLabel是否真的不能在String和Icon旁边显示一个值。例如,用于显示Clock变量..

Clock clock = Clock.systemDefaultZone();

JLabel setText()方法如下......

label.setText(clock);

我知道setText()方法仅适用于String参数。但由于时钟变量无法转换为String,我真的不知道如何在标签上显示它。或者我应该使用什么而不是JLabel来显示时钟变量。

我试过label.setText(Clock.valueOf(clock));,直到后来我意识到只适用于原始数据(或没有?)。我此刻真的陷入困境。

2 个答案:

答案 0 :(得分:2)

我假设您正在使用java.time.Clock。您可以通过执行clock.instant().toString()将当前时间转换为ISO-8601字符串。

因此,您可以使用以下命令将时钟放在标签中:

label.setText(clock.instant().toString());

如果您希望标签显示时钟更新,您可能需要使用类似Timer的内容来每秒重置标签文本。

如果您不希望带有this的ISO-8601设置您自己的格式,则可以更改格式。

答案 1 :(得分:0)

JLabel会将文本设置为对象 如果你重写了toString()方法 并打电话给它..

作为

System.out.println(clock); //this would automatically call the toString() method.

为此..你必须直接打电话。

label.setText(clock.toString());