【问题标题】:How to auto refresh gui screen in java, after update taking place in a stored file?java - 在存储文件中进行更新后,如何在java中自动刷新gui屏幕?
【发布时间】:2014-04-24 03:29:54
【问题描述】:

我有一个 java swing 应用程序,它从 .text 文件中读取其组件的值。我正在尝试更新它的一个值并将其存储在 .text 文件中,然后可能还需要在 GUI 屏幕中进行刷新。文件中的值已修改,但 GUI 无法在不重新启动的情况下检测到更改。我已经使用计时器完成了 repaint()、re-validate()。谁能指定我能做什么?提前致谢。

【问题讨论】:

  • 首先,如果您更改组件的值,Swing 将自动重新绘制,例如,setText。其次,强制 GUI 重新绘制不会重新运行一开始就设置其值的代码。因此,首先您需要monitor your file for changes,然后您需要调用读取文件的代码并在该文件更改时设置您的字段值。
  • 你试过 update() 方法了吗??
  • 嗨@BoristheSpider,感谢您的回复。一旦我使用我的 jbutton 更新并且我确定它,我的文件就会立即修改。我如何调用我当前在文本字段中更新的修改值?
  • 不,@Stunner,我是 java swing 新手,你能解释一下它是如何工作的吗?谢谢
  • 只需用你的 jframe/window 对象调用 update 方法,比如 frame.update();

标签: java eclipse swing user-interface refresh


【解决方案1】:

一个好的解决方案是将所有 GUI 组件存储在 ArrayList 或您可能喜欢的其他类型的 List 中。

您最初会读取文本文件并将其各自的组件添加到列表中,然后将该列表加载到您的 GUI 中。编辑文件时,您可以再次循环遍历它,如果列表中不存在组件,您可以添加它。如果列表中的任何组件与文件不对应,您可以从列表中删除它们。之后,您可以使用列表中的组件重新加载 GUI。

【讨论】:

  • 没问题!感谢您的声誉:)
【解决方案2】:

如果您的文件发生更改,您需要监视您的文件并触发一个事件。此事件必须设置将强制组件自动刷新的组件值。

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    • 2011-04-18
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    相关资源
    最近更新 更多