【问题标题】:Java+JavaFX2 Project: modular contentJava+JavaFX2 项目:模块化内容
【发布时间】:2012-09-27 12:44:33
【问题描述】:

我对 java 和 javafx 2 还是很陌生。 我想做的是一个应用程序,它基本上是一个单独的“模块”的容器,可以稍后添加。

主应用程序应该是某种内容浏览器,用于扫描文件夹中的模块。 然后,您可以选择所需的模块(例如,一个小游戏)并在主应用程序中打开它(如框架)。如果我可以选择全屏显示(仅模块,没有主应用程序),我也会喜欢它。 主应用程序和模块也应该能够通信(例如,发送“难度”或“起始级别”等设置并接收分数/结果)。

您知道我应该如何实现模块化(不丢失相互通信)吗?

我试图在 Google 上查找它,但我可能不知道正确的技术术语......所以,任何帮助将不胜感激!

注意:我是一个 GUI 菜鸟(我的大部分编程经验都是基于 CLI 的,而且相当低级)。

编辑:很奇怪,它删除了“嗨!”从第一行开始......我想有些规则迫使我们变得粗鲁;)......

【问题讨论】:

    标签: java javafx-2 modularity modular


    【解决方案1】:

    看看 Java 6+ 中的 ServiceLoader 类,互联网上有很多关于它的文档,但它的要点是你可以向它询问在配置的类路径上找到的接口的实现。例如,您可以有以下界面:

    interface AppPlugin {
        Node getContentNode();
    
        String getName();
    }
    

    然后插件需要实现这个接口并被配置为由 ServiceLoader 加载。在此处查看教程:

    http://weblogs.java.net/blog/timboudreau/archive/2008/08/simple_dependen.html

    【讨论】:

    • 谢谢!我找到了这个:solitarygeek.com/java/a-simple-pluggable-java-application,这比你给我的链接要容易一些。我仍然需要弄清楚如何使用 JavaFX2 处理这个问题(对此有任何输入吗?)。再次感谢,非常感谢。
    • 没问题,我不确定你希望它看起来如何,但你可以有一个所有插件的 ListView(ListView 上的好 oracle 文档)显示名称,以及一个中心面板,其中选择列表中的项目时,将设置插件的内容节点。假设服务接口类似于上面的示例。
    猜你喜欢
    • 2015-06-10
    • 1970-01-01
    • 2021-01-13
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 2016-02-29
    • 1970-01-01
    相关资源
    最近更新 更多