Java Swing,暂停程序的正常过程,直到发生某些事情

Java Swing, pause the normal procedure of a program until something happens

我正在制作一个 Java Swing 应用程序,我希望它能存储一些数据。我正在使用 ObjectInput/OutputStream class,我想做的是,在设置主框架可见之前,从磁盘读取文件,然后在程序中修改它们等,当我按下关闭按钮我想将新对象保存在相同的文件中(替换它们)。

虽然 setVisible() 函数暂停了线程,直到调用 dispose() 函数。好吧,我在 setVisible() 函数之后编写我的代码,但它会在主框架打开后立即运行。我该如何解决我的问题?

顺便说一下,我使用的是 netBeans 并且我使用的是 JFrame 表单。

您可以使用线程 class 通过使用 Thread.sleep() 暂停,或者使用 Swing Timers 实现相同的行为。

  1. 将数据加载到某种模型中。该模型提供 setter(如果适用)和 getter 以允许其他 类 访问数据,但该模型提供实际的管理。
  2. 在这种情况下,您可以使用 WindowListener 来检测 windowClosing 事件,使用新数据更新模型并请求模型保留它。

有关详细信息,请参阅 How to Write Window Listeners