【问题标题】:Changing the value of jLabel in jDialog after loading it加载后在jDialog中更改jLabel的值
【发布时间】:2010-07-21 05:04:08
【问题描述】:

我有一个JDialog 和一个JLabel。我想每 10 秒更改一次标签的值。 如何使用 JLabel 中的更新值重绘/重绘 JDialog

【问题讨论】:

  • 如果像 setVisible(false) 一样尝试,设置值然后 setVisible(true)...试试看...

标签: java multithreading jlabel jdialog


【解决方案1】:

使用Swing Timer 安排对标签的更新。那么你要做的就是

label.setText(...);

标签将自动重新绘制。无需调用repaint()

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我已经编写了调用重绘方法的代码。但是在 setVisible 属性设置为 true 后它没有得到调用。
    • 如果像 setVisible(false) 一样尝试,设置值然后 setVisible(true)...试试看...
    • -1,您不应该使用 util.Timer 和 util.TimerTask 来安排对 Swing 组件的更新。所有 Swing 组件都应在 EDT 上更新。
    猜你喜欢
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多