2010-07-21 32 views
0

我有JDialogJLabel。我想每10秒更改一次标签的值。 如何使用JLabel中的更新值重绘/重新绘制JDialog加载后在jDialog中更改jLabel的值

+0

如果是这样尝试像setVisible(false),设置值,然后setVisible(true)...试一试... – Venkat 2010-07-21 06:51:46

回答

1

使用Swing Timer可以更新标签。那么你要做的就是

label.setText(...); 

并且标签将被自动重新绘制。没有必要调用repaint()

您的问题可能是您在显示模式JDialog后试图启动Timer。在这种情况下,代码不会执行,直到关闭对话框。因此,您需要确保在使用dialog.setVisible(true)之前启动Timer

如果您需要更多帮助,请发布您的SSCCE显示问题。

-1

您可以使用TimerTimerTask来计划每10秒,其中您必须提供JLabelText的值。之后,您必须用repaint()方法刷新当前窗口。现在,您将获得JLabelText值更新...

+0

我已经编码调用重绘方法。但是它在setVisible属性设置为true后没有收到调用。 – Joe 2010-07-21 06:25:29

+0

如果是这样尝试像setVisible(false),设置该值,然后setVisible(true)...试一试... – Venkat 2010-07-21 06:51:12

+0

不,它仍然显示旧值。 – Joe 2010-07-21 07:31:26