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

JavaFX新场景或新窗格

解阳泽
2023-03-14
问题内容

我正在寻找某种有关组织应用程序的建议。

当您拥有包含内容选择的主菜单时,请按一个按钮,则获取控制器有两个选择:a)更改当前显示主菜单的内容b)创建一个新场景并将舞台切换到该场景一

你在用什么 有什么最佳实践吗?

目前,我更喜欢a),因为我可以保持事物链接状态栏等,但这是“干净”的方式吗?


问题答案:

首先,需要考虑一些事情:
1)更改场景将取消链接到您附加到该事件处理程序的链接,并且可能也取消您提到的“状态栏”的链接。

2)Java是一种高度面向对象的语言,这也意味着在不同的对象之间进行更改,并且在可能的情况下使用多态是一种很好的做法。

我的经验与事件处理程序有关,因为事件处理程序除了链接到特定节点(按钮)外,还经常链接到场景,但是可能还需要考虑其他类似的概念。在一个项目中,我经常在显示菜单,暂停,播放和游戏之间进行切换,但是由于我主要使用相同的键,而鼠标几乎不参与其中,所以我意识到我不必从创建新的事件处理程序中受益。用于单独的Scene对象。相反,我使用该Scene.setRoot();方法来更改活动显示的“节点/窗格”。

但是,如果您的处理方式有很大不同,例如从带有按钮和文本字段的菜单进入FPS游戏,其中每个输入的效果都与菜单相反,那么最好设置不同的Overrides事件处理程序在两个不同的Scene对象中使用,而是使用Stage.setScene();方法,从而使处理程序以多态*的方式运行,而不是在处理程序内部没有另一组控制结构,以便当您不在菜单中时CPU可以在每个帧中进行处理。

*我知道,当我说多态时,我并不是在指继承多态,但这是我想描述避免在可能需要更好性能的情况下避免额外的运行时代码的最佳方法。



 类似资料:
  • 对我如何做到这一点有什么建议吗? 这是我到目前为止编写的代码,但它似乎忽略了Thread.Sleep并且只使第三个代码变为蓝色。

  • 问题内容: 我正在尝试学习JavaFX,并将swing应用程序转换为JavaFX。我想做的是使用JavaFX来显示程序的进度。 我以前在Swing中所做的是首先使用自定义JComponent创建一个JFrame。然后让我的主程序调用自定义JComponent的方法,该方法将更改JComponent和repaint()中的形状颜色。 下面给出了我想在JavaFX中实现的目标的想法: 我目前将此作为我

  • 问题内容: 标题可能有点含糊,所以让我对其定义更好一些。我有一段有效的代码(在下面):我正在开发的游戏的简单主菜单。除“开始”按钮外,其他所有内容均正常运行。 我想要做的是单击“开始”按钮,并在同一阶段(窗口)中出现一个新场景。我不想看到一个新窗口打开。我已经与Java经验丰富的人进行了交谈,他们告诉我为MenuFX和GameFX创建单独的类。如果是这种情况,我需要从MenuFX类中调用GameF

  • 我正在设计一款跳棋游戏,一旦游戏结束,一个新窗口就会打开,你可以开始一个新游戏,也可以退出。我对JavaFX了解不多,我一直在努力让我的代码正常工作,但我没有成功。。。 我有一个困难,我的电路板没有显示为fxml文件,但它是用Java代码创建的,并放在我的边框窗格的中心。边框窗格的顶部是fxml文件。然后,游戏结束后的另一个窗口也是另一个fxml文件: 这个fxml文件的Controller类如下

  • 我是JavaFX的新手。我试图编程一个简单的图形用户界面,但我面临着那些可能相关的问题。我用文件选择器设置文件,并想做相当基本的操作: 保存最后使用的文件夹 在VBox中写入选中文件的名称 这是我的代码(编译): 我无法刷新节点以设置当前初始目录或在VBox上显示collecName。我试图通过重新加载对象或调整窗口大小来重新生成它们,但没有任何效果。当我在控制台上打印变量时,我看到它们发生了变化

  • 接口说明 操作场景产生的信息json,需要提交到服务端进行保存,以便下次查看场景的时候,可以正常访问到对该场景操作过得信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/scene/1.0.0/upload 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 id string form 是 场景ID