【问题标题】:Refreshing Swing application with Eclipse/MyEclipse使用 Eclipse/MyEclipse 刷新 Swing 应用程序
【发布时间】:2023-04-07 21:47:01
【问题描述】:

假设我们正在编写一个 Java Swing 应用程序,并且我们使用 Eclipse 或 MyEclipse 来开发它。在 Web 应用程序中,您进行代码更改、保存,并且您的 ant 部署文件负责部署更改的文件。然后您只需刷新或硬刷新网页,更改就会出现在那里。我们能否对 Swing 应用程序做同样的事情,这样我们就不必在每次进行更改时从头开始关闭和打开程序?

【问题讨论】:

  • 您可以在某些 GUI 布局编辑器的“设计视图”中看到它们。但除此之外,没有。我建议您为您的应用程序制作一个“测试”表单。它允许您快速导航到 GUI 结构的深处(例如,弹出显示向导第 15 步的对话框的框架)。
  • 我知道 NetBeans,在调试模式下,您可以将更改重新加载到正在运行的会话中,但我不知道如何在 Eclipse 中做到这一点。如果运行,不,你不能。通常,代码不像大多数基于 Web 的解决方案那样动态控制
  • Eclipse 在调试模式下支持热代码替换,只要您不修改类结构(即,您不更改类变量或任何方法签名)。您可以在方法中修改代码。

标签: java eclipse swing myeclipse


【解决方案1】:

我不这么认为,因为您需要热代码替换! Maybee 使用另一个框架。

【讨论】:

    【解决方案2】:

    你不能简单地这样做,因为一旦 JVM 启动,它会加载一次类文件,直到下一次加载请求才会重新加载。但是您可以使用ClassLoader 动态加载修改后的类文件。

    以下两篇文章可能会有所帮助:

    第一个是中文的,但是你可以看看代码和结果。我认为第二篇文章对 GUI 应用程序更有帮助。

    【讨论】:

      【解决方案3】:

      在 MyEclipse 中,您可以在调试模式而不是运行模式下启动应用程序,您所做的更改将被推送到目标 VM;如果您所做的更改无法被替换,您将看到一个对话框,通知您替换失败,您将需要重新启动应用程序。您不需要在应用程序中放置任何断点,只需在调试模式下启动就足够了。

      正如 Guillaume 上面所说,对类结构的更改通常不会热同步,但现有方法中的更改应该没问题。

      显然,热同步更改对您正在运行的应用程序的影响程度取决于您的应用程序设计。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多