- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
大家好,我认识 javafx,我正在尝试将 BorderPane 转换为 anchronPane,同时发生错误,我不知道该怎么做,我正在学习教程,所以请帮忙
import java.io.IOException;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class MainApp extends Application {
private Stage primaryStage;
private BorderPane rootLayout;
@Override
public void start(Stage primaryStage) {
this.primaryStage = primaryStage;
this.primaryStage.setTitle("AddressApp");
initRootLayout();
showPersonOverview();
}
/**
* Initializes the root layout.
*/
public void initRootLayout() {
try {
// Load root layout from fxml file.
FXMLLoader loader = new FXMLLoader();
loader.setLocation(MainApp.class.getResource("view/RootLayout.fxml"));
rootLayout = (BorderPane) loader.load();
// Show the scene containing the root layout.
Scene scene = new Scene(rootLayout);
primaryStage.setScene(scene);
primaryStage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* Shows the person overview inside the root layout.
*/
public void showPersonOverview() {
try {
// Load person overview.
FXMLLoader loader = new FXMLLoader();
loader.setLocation(MainApp.class.getResource("view/PersonOverview.fxml"));
AnchorPane personOverview = (AnchorPane) loader.load();
// Set person overview into the center of root layout.
rootLayout.setCenter(personOverview);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* Returns the main stage.
* @return
*/
public Stage getPrimaryStage() {
return primaryStage;
}
public static void main(String[] args) {
launch(args);
}
}
我收到这个错误
Exception in Application start method
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:367)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Exception in Application start method
atcom.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:894)
at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:56)
at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:158)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassCastException: javafx.scene.layout.AnchorPane cannot be cast to javafx.scene.layout.BorderPane
at ch.makery.address.MainApp.initRootLayout(MainApp.java:35)
at ch.makery.address.MainApp.start(MainApp.java:22)
at com.sun.javafx.application.LauncherImpl$8.run(LauncherImpl.java:837)
at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:335)
at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:301)
at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:298)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:298)
atcom.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.ja va:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39)
at com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112)
... 1 more
异常运行应用程序 ch.makery.address.MainApp Java 结果:1
如果我不能施法,那我该怎么办?
最佳答案
我也在学习同样的教程,遇到了同样的问题。
就我而言,在创建 RootLayout FXML 时,我错误地选择了 AnchorPane 而不是 BorderPane 作为根元素。因此,在 initRootLayout() 方法中,它尝试将 AnchorPane 对象转换为 BorderPane 对象。正如前面评论中提到的,AnchorPane 和 BorderPane 扩展了 Pane,它们不能相互转换!
因此,如果您选择 BorderPane 作为 RootLayout.fxml 的根元素,它会正确地将对象转换为 BorderPane。因此,现在我想知道,是否需要这种转换?
我希望你的问题现在已经解决了。这可能对遇到此问题的其他人有所帮助!
关于javafx : javafx. scene.layout.AnchorPane 无法转换为 javafx.scene.layout.BorderPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35956527/
我正在使用 JavaFX 2.2.7-b01 编写应用程序。 这是我目前拥有的代码示例。如何允许调整应用程序窗口的大小但保持最初配置的纵横比?换句话说,如果用户调整窗口大小,则窗口宽度应始终保持为窗口
所以我正在努力将我的 cocos2d 游戏移植到 Sprite Kit。 在 cocos2d 中有两种情况,我会在整个游戏场景中叠加一个菜单。第一种情况是暂停,第二种情况是游戏结束。 在 cocos2
我在代码的最后一行遇到错误。 - (SCNScene *)getWorkingScene { SCNScene *workingSceneView = self.scene; if
我需要在代码中手动设置插入符号位置。getCaretPosition()下有一个javafx.scene.control.TextInputControl,但没有设置方法。 如何设置插入符的位置? 最
方法scene(_ scene: UIScene, continue userActivity: NSUserActivity)用户单击通用链接后启动应用程序时不会调用。 当用户单击通用链接后再次打开
我正在使用 ARKit 图像跟踪配置,一旦检测到图像,图像上就会弹出 3D 场景。 但是当我设置两个不同的图像触发两个不同的场景文件时,一张图像总是在同一张图像上弹出两个不同的场景文件。我敢肯定图像不
如何更改存储在网格中的对象的属性?我尝试了这个,但它给了我上面的错误: Group group = new Group(); double dimension_x=100; d
我在填充 javafx tableview 时遇到问题。 我目前正在开发基于 GUI 的事件管理工具(适用于大学),但我一直在尝试填充 Tableview 列表,该列表应该位于边框 Pane 布局的中
大家好,我认识 javafx,我正在尝试将 BorderPane 转换为 anchronPane,同时发生错误,我不知道该怎么做,我正在学习教程,所以请帮忙 import java.io.IOExce
我有创建图像的代码:(m_img 是 javafx.scene.image.Image) Image m_img = new Image("file:" + p_Fil.getAbsoluteFile
当最初从FXML加载Scene时,如何在Java代码中为Scene添加一个新节点? 我已经从FXML加载了,如下所示 Parent root = FXMLLoader.load(getClass().
在以下代码上: ScrollPane scrollPane = new ScrollPane(); 我遇到异常 java.lang.NoClassDefFoundError: javafx/scene
我从 JavaFX 开始。 错误发生在我执行我的程序时,在我尝试这样做之前,它工作正常并且按钮点击有效,但那是在我打算让按钮点击更改文本之前。
我正在制作一个滑动动画以将一个场景切换到另一个场景,但是当我调用此方法时,它在切换场景时有延迟。我发现原因是类Scene的一个方法snapshot()。有没有人有解决办法? 代码: public vo
当发现“条形码”时,我尝试以编程方式更改场景,但我不断收到错误... 导入的模块: import UIKit import AVFoundation import SpriteKit import S
我试图通过场景工具包节点旋转,但它没有旋转。 我想让它绕 y 轴旋转。它是一个球体。 let node = SCNNode() node.geometry = SCNSphere(radius: 1)
在应该加载场景的按钮中,我正在尝试学习使用 guard 语句,但对它在四个“转义”中的每一个中所做的事情感到非常困惑。也不知道在没有场景的情况下应该怎么处理。 此处正确使用的是: continue、r
本文整理了Java中javafx.scene.input.ZoomEvent类的一些代码示例,展示了ZoomEvent类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Ma
我正在使用 JavaFx 和 Scenebuilder,并希望在 Eclipse 中为自己创建一个名为“Taskplanner”的本地应用程序。 我创建了一个新舞台并使用场景设置它(请参阅 Main.
我在舞台上有一个场景。场景的宽度为 337.0 像素。但是,当我将它添加到舞台时,舞台的大小为 337.6 像素,由于 0.6 像素的差异,在屏幕的右边缘留下了一个白色间隙。 我尝试使用 stage.
我是一名优秀的程序员,十分优秀!