gpt4 book ai didi

java - 将 JPanel 暴露给外部 jar

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:08:05 24 4
gpt4 key购买 nike

我有一个 Java SWING 程序,基本上只有一个简单的窗口。该窗口包含一个菜单和一个 JPanel。理想情况下,我想使用菜单选择一个外部 jar 文件(这是另一个 SWING 程序)并运行它。然后 jar 应该在后台执行并在我的窗口中使用 JPanel 而不是自己创建一个新窗口。这可能吗?我的猜测是我应该以某种方式将我的 JPanel“公开”或“提供”给外部应用程序,但我不知道如何做到这一点。即使是一个简单的代码片段也会非常感激。非常感谢

最佳答案

您将需要在自定义类加载器中加载外部 Jar 以使其可供您的应用程序运行。类似于 URLClassLoader应该有能力做到这一点。

您的应用程序和外部 Jar 应该使用一个共同的、已知的接口(interface),它们可以通过它们进行通信。这允许您加载外部 jar,找到并加载所需的“入口”类并运行它。

这个 interface 应该为通知/回调机制(又名监听器)提供某种注册,您的应用程序可以将其附加到外部“任务”,然后外部类可以使用它来提供将更改通知返回给您的应用程序。

在可能的情况下,您应该避免将更多的应用程序暴露给外部 Jar,然后再不得不这样做。这降低了外部 Jar 干扰您的应用程序的风险,或者实际上,甚至需要关心它......

您可以使用 Observer PatternProducer/Consumer Pattern , 取决于你的需要

更多关于 Observer Pattern

关于java - 将 JPanel 暴露给外部 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18478009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com