Javafx交换锚定窗格不工作。在这种情况下,我做错了什么?
我对StackOverflow比较陌生,我想问一个关于JavaFX的问题。我知道有关于这个问题的答案,但没有一个有效,在过去的12个小时里,我一直在集思广益,无法找到解决方案。我正在创建一个待办事项列表应用程序,我想根据单击的按钮更改窗格。现在,我有一个主的空锚定窗格,当单击带有fx:id b1的按钮时,它必须更改为另一个在另一个.fxml文件中创建的锚定窗格。对于更简单的代码,我只是尝试加载.fxml文件作为主窗格。代码如下: AddWindow.fxml这是我要添加的窗口的代码,它将替换一个主窗格Javafx交换锚定窗格不工作。在这种情况下,我做错了什么?,java,javafx,fxml,fxmlloader,Java,Javafx,Fxml,Fxmlloader,我对StackOverflow比较陌生,我想问一个关于JavaFX的问题。我知道有关于这个问题的答案,但没有一个有效,在过去的12个小时里,我一直在集思广益,无法找到解决方案。我正在创建一个待办事项列表应用程序,我想根据单击的按钮更改窗格。现在,我有一个主的空锚定窗格,当单击带有fx:id b1的按钮时,它必须更改为另一个在另一个.fxml文件中创建的锚定窗格。对于更简单的代码,我只是尝试加载.fxml文件作为主窗格。代码如下: AddWindow.fxml这是我要添加的窗口的代码,它将替换一个
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.effect.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>
<AnchorPane prefHeight="591.0" prefWidth="780.0" style="-fx-background-color: #212121;" xmlns="http://javafx.com/javafx/10.0.2-internal" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.AddWindow">
<children>
<Label alignment="CENTER" layoutX="134.0" layoutY="45.0" prefHeight="50.0" prefWidth="331.0" style="-fx-border-color: #00ff00; -fx-border-width: 3;" text="Please insert the new entry" textFill="LIME">
<font>
<Font name="Palatino Linotype" size="24.0" />
</font>
<effect>
<Glow />
</effect>
</Label>
<Label layoutX="218.0" layoutY="163.0" text="Date" textFill="LIME">
<font>
<Font name="Palatino Linotype" size="18.0" />
</font>
</Label>
<Label layoutX="134.0" layoutY="199.0" text="Is it important?" textFill="LIME">
<font>
<Font name="Palatino Linotype" size="18.0" />
</font>
</Label>
<Label layoutX="109.0" layoutY="238.0" text="What is the event?" textFill="LIME">
<font>
<Font name="Palatino Linotype" size="18.0" />
</font>
</Label>
<Separator layoutX="295.0" layoutY="148.0" orientation="VERTICAL" prefHeight="175.0" prefWidth="10.0" style="-fx-background-color: #11111;" />
<DatePicker layoutX="348.0" layoutY="162.0" prefHeight="25.0" prefWidth="147.0" />
<ChoiceBox fx:id="cb1" layoutX="347.0" layoutY="199.0" prefHeight="25.0" prefWidth="147.0" />
<TextArea layoutX="347.0" layoutY="238.0" prefHeight="82.0" prefWidth="147.0" promptText="Describe the event">
<font>
<Font name="Palatino Linotype" size="12.0" />
</font>
</TextArea>
</children>
</AnchorPane>
异常堆栈跟踪
问题是每次我按下按钮时都会发生LoadException。找到该文件,否则将触发NullPointerException,但现在不是这样
我还看到以下链接没有解决我的问题,至少我尝试过:
我已经阅读了很多其他的解决方案,并观看了大约20个关于这个主题的不同视频。我无法将它们全部链接起来,它们确实很多,我可能做错了什么,但似乎没有任何效果。我的白痴自己做错了什么程序员同事???欢迎来到Stack Overflow。请阅读下面关于一个好问题的常见问题解答。不幸的是,您在这里转储了很多代码,我们可能不想通读这些代码。请回答这个问题,并附上一个能证明你所遇到问题的答案。此外,不要说你花了数小时/数天的时间研究其他可用的答案,请附上这些答案的链接,并详细说明你尝试了什么,以及它们是如何解决你的问题的。所有这些都说明,也许我的回答会引导你走向正确的方向。不要压扁从注释掉的行中得到的异常,并在问题中发布完整的堆栈跟踪。@Zephyr您好,谢谢所有有用的信息!我按照您的指示,设法缩小了代码的范围,以便只显示必要的行。不幸的是,你的解决方案并不能解决我的问题。你能告诉我发生了什么事吗?你有什么线索吗?再次感谢:
package sample;
import javafx.application.Application;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("AddWindow.fxml"));
primaryStage.setTitle("Tudu");
primaryStage.setScene(new Scene(root, 1003, 594));
primaryStage.initStyle(StageStyle.TRANSPARENT);
primaryStage.getIcons().add(new Image("taskImg.png"));
primaryStage.setResizable(false);
primaryStage.show();
}
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:498)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
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:498)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:873)
Caused by: java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$1(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:748)
Caused by: javafx.fxml.LoadException:
/C:/Users/johna/Desktop/Tudu/out/production/JavaFxApplication/sample/AddWindow.fxml:8
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.access$700(FXMLLoader.java:103)
at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:922)
at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:971)
at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:220)
at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:744)
at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at sample.Main.start(Main.java:17)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$8(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$7(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$4(WinApplication.java:185)
... 1 more
Caused by: java.lang.ClassNotFoundException: sample.AddWindow
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:920)
... 22 more
Exception running application sample.Main