当前位置: 首页 > 面试题库 >

JavaFX软件设计

卢聪
2023-03-14
问题内容

在JavaFX应用程序中,必须对javafx.application.Application进行子类化,并且必须从该派生类中调用继承的launch()方法(尽管它是公共的),否则将引发异常。然后,launch()方法使用反射来实例化派生的类,从而很难为类成员设置值,而又不会在启动时丢失它们。这一切对我来说似乎完全不寻常,我想知道为什么启动JavaFX应用程序如此复杂,如果这种软件设计(设计模式?)有名称,或者仅仅是不好的设计?

编辑:

更具体地说,我想使用观察者模式,以便在加载文档时通知我的java应用程序,如下所示:

public class MyDocumentLoader extends Application
{
    private ChangeListener<Worker.State> changeListener;

    public void setChangeListener(ChangeListener<Worker.State> changeListener)
    {
        this.changeListener = changeListener;
    }

    ...

    public void loadDocument(String url)
    {
        webEngine.getLoadWorker().stateProperty().addListener(changeListener);
        webEngine.load(url);
    }

    ...

}

我需要几种方法中的回调成员,理想情况下,我可以拥有一个以上类来加载文档的实例,因此可以为不同的URL设置不同的ChangeListeners。


问题答案:

JavaFX支持大量的部署和打包策略。https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/toc.html,并且具有标准化的生命周期入口和出口点可简化对所有这些策略的支持。

如果由于JavaFX启动程序实例化了主应用程序类而在努力初始化它,那么最好的选择是使用James.D指出的Application.init()和Application.stop()方法。



 类似资料:
  • 收集的软件设计师资料,喜欢的可以收藏下,包含了软考的一些知识点,内容有点杂乱,希望对您有所帮助。

  • 电话面,首先是自我介绍 了解css3吗 跨域 computed和watch的区别 当页面变化时,从后端请求数据,再把数据显示到页面用watch还是computed 对echart的了解 js数组有哪些方法 vuex的了解 是否可以直接更改vuex的state里面的值

  • 整个面试过程大约耗时一个小时。因为事先与金蝶用户体验部一名交互设计师(也就是我的面试官)先取好联系,所以当天见面双方都比较放松,氛围很轻松。 首先说明一下,我并不是按照金蝶校招计划进行报名面试的,而是自己私下去联系对方的用户体验部,与对方负责招实习生的hr取得联系,从而获得的面试机会,因此当天只有我一个人面试,所以这份面经仅做参考,但不能代表金蝶交互设计面试的规范流程。 面试刚开始,先是简单自我介

  • Linux 中没有 注册表 这个概念。安装软件,理论上讲,只要拷贝所有相关文件,并运行它的主程序就可以了。 按照传统,一个软件通常分别拷贝到同级目录下的 bin、etc、lib、share等文件夹。 bin 可执行文件,程序的可执行文件通常在这个目录下。在环境变量中设定搜索路径,就可以直接执行,而不需要定位其路径。 etc 配置文件,大部分系统程序的配置文件保存于 /etc 目录,便于集中修改。

  • 拿到树莓派后,你需要进行一些初始化设置,以便于用起来更方便。除此之外,你可能需要安装一些软件,以便树莓派能实现更加强大的功能。 常见初始化设置 1)设置密码: 树莓派的默认用户名是pi,没有密码。这意味着别人可以随意使用你的树莓派。你可以在终端中为pi用户设置密码: $sudo passwd pi 2)拓展文件系统 一开始的Raspbian镜像只有4G。这意味着你的树莓派也只会使用SD卡上4G的空

  • 问题内容: 一个较早的问题解释说,在x86上,要监视的对象的大小受调试寄存器的限制。不出所料,我可以“观看”一个双变量。但例如,我看不到双重数据成员, 产生 但是当您尝试继续执行时,它说 无法插入硬件断点:您可能请求了太多的硬件断点/观察点。 即使这是 唯一的 断点/观察点。 我很好奇为什么会这样,但更重要的是有没有办法解决?根据GDB文档,如果不能使用硬件,则可以使用软件观察点。在这种情况下,它