我想知道JLabel是否真的不能在String和Icon旁边显示一个值。例如,用于显示Clock变量..
Clock clock = Clock.systemDefaultZone();
JLabel setText()
方法如下......
label.setText(clock);
我知道setText()
方法仅适用于String参数。但由于时钟变量无法转换为String,我真的不知道如何在标签上显示它。或者我应该使用什么而不是JLabel来显示时钟变量。
我试过label.setText(Clock.valueOf(clock));
,直到后来我意识到只适用于原始数据(或没有?)。我此刻真的陷入困境。
答案 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());