gpt4 book ai didi

java - 从一个窗口移动到另一个窗口

转载 作者:行者123 更新时间:2023-12-02 08:53:53 24 4
gpt4 key购买 nike

编码新手,更不用说java和javaFX了。我不确定从主窗口移动到任何其他窗口时我在哪里搞砸了,需要一些帮助来解决这个问题。

主窗口打开正常,但当尝试移动到任何其他屏幕时,例如 AddPart,它会在页面底部显示错误日志。它对每个页面都执行此操作,因此我假设这与我尝试加载页面的方式有关。

HomeWindow Controller :

package ViewController;

import Model.Inventory;
import static Model.Inventory.getPartInventory;
import static Model.Inventory.getProductInventory;
import static Model.Inventory.removePart;
import static Model.Inventory.removeProduct;
import static Model.Inventory.validatePartDelete;
import Model.Part;
import Model.Product;
import Software1C482.InventorySystem;
import java.io.IOException;
import java.net.URL;
import java.util.Optional;
import java.util.ResourceBundle;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;

import javafx.scene.control.Button;
import javafx.scene.control.ButtonType;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.stage.Modality;
import javafx.stage.Stage;
/**
* FXML Controller class
*
* @author Andrew
*/

//It's the home window.
public class HomeWindowController implements Initializable {

//Declaring the FXML parts.
@FXML
private TableView<Product> TableProduct;
@FXML
private TableColumn<Product, Integer> ProductID, ProductInventoryLevel;
@FXML
private TableColumn<Product, String> ProductName;
@FXML
private TableColumn<Product, Double> ProductPPU;
@FXML
private Button ButtonProductAdd;
@FXML
private Button ButtonProductModify;
@FXML
private Button ButtonProductDelete;
@FXML
private Button ButtonPartSearch;
@FXML
private TableView<Part> TablePart;
@FXML
private TableColumn<Part, Integer> PartID, PartInventoryLevel;
@FXML
private TableColumn<Part, String> PartName;
@FXML
private TableColumn<Part, Double> PartPPU;
@FXML
private TextField SearchFieldPart;
@FXML
private TextField SearchFieldProduct;

private static Part modifyPart;
private static int modifyPartIndex;
private static Product modifyProduct;
private static int modifyProductIndex;

public static int partToModifyIndex() {
return modifyPartIndex;
}

public static int productToModifyIndex() {
return modifyProductIndex;
}

public HomeWindowController() {
}

@FXML
void HomeExitClick(ActionEvent event) {

Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
alert.initModality(Modality.NONE);
alert.setTitle("Confirmation");
alert.setHeaderText("Confirm Exit");
alert.setContentText("Are you sure you want to exit?");
Optional<ButtonType> result = alert.showAndWait();

if (result.get() == ButtonType.OK) {
System.exit(0);
} else {
System.out.println("Please resume completing form.");
}
}

@FXML
void HomeAddPartClick(ActionEvent event) throws IOException {

Parent addPart = FXMLLoader.load(getClass().getResource("AddPart.fxml"));
Scene scene = new Scene(addPart);
Stage window = (Stage) ((Node) event.getSource()).getScene().getWindow();
window.setScene(scene);
window.show();
}

@FXML
void HomeAddProductClick(ActionEvent event) throws IOException {

Parent addProducts = FXMLLoader.load(getClass().getResource("AddProduct.fxml"));
Scene scene = new Scene(addProducts);
Stage window = (Stage) ((Node) event.getSource()).getScene().getWindow();
window.setScene(scene);
window.show();
}

@FXML
void HomeModifyPartClick(ActionEvent event) throws IOException {

modifyPart = TablePart.getSelectionModel().getSelectedItem();
modifyPartIndex = getPartInventory().indexOf(modifyPart);
Parent modifyParts = FXMLLoader.load(getClass().getResource("ModifyPart.fxml"));
Scene scene = new Scene(modifyParts);
Stage window = (Stage) ((Node) event.getSource()).getScene().getWindow();
window.setScene(scene);
window.show();
}

@FXML
void HomeModifyProductClick(ActionEvent event) throws IOException {

modifyProduct = TableProduct.getSelectionModel().getSelectedItem();
modifyProductIndex = getProductInventory().indexOf(modifyProduct);
Parent modifyProducts = FXMLLoader.load(getClass().getResource("ModifyProduct.fxml"));
Scene scene = new Scene(modifyProducts);
Stage window = (Stage) ((Node) event.getSource()).getScene().getWindow();
window.setScene(scene);
window.show();
}

@FXML
void HomeSearchProductsBtn(ActionEvent event) throws IOException {
String searchProd = SearchFieldProduct.getText();
int prodIndex = -1;
if (Inventory.lookupProduct(searchProd) == -1) {
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Search Error");
alert.setHeaderText("Product not found.");
alert.setContentText("The text entered does not match any Product.");
alert.showAndWait();
} else {
prodIndex = Inventory.lookupProduct(searchProd);
Product tempProd = Inventory.getProductInventory().get(prodIndex);
ObservableList<Product> tempProdList = FXCollections.observableArrayList();
tempProdList.add(tempProd);
TableProduct.setItems(tempProdList);
}
}

@FXML
void HomeDeleteProductBtn(ActionEvent event) throws IOException {
Product product = TableProduct.getSelectionModel().getSelectedItem();
Alert alert = new Alert(AlertType.CONFIRMATION);
alert.initModality(Modality.NONE);
alert.setTitle("Confirm Delete");
alert.setHeaderText("Confirm?");
alert.setContentText("Are you sure you want to delete " + product.getProductName() + "?");
Optional<ButtonType> result = alert.showAndWait();
if (result.get() == ButtonType.OK) {
removeProduct(product);
updateProductTableView();
System.out.println("Product " + product.getProductName() + " was removed.");
} else {
System.out.println("Product " + product.getProductName() + " was not removed.");
}
}

@FXML
void PartSearchOnAction(ActionEvent event) throws IOException {
String searchPart = SearchFieldPart.getText();
int partIndex = -1;
if (Inventory.lookupPart(searchPart) == -1) {
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Search Error");
alert.setHeaderText("Part not found.");
alert.setContentText("The text entered does not match any Part.");
alert.showAndWait();
} else {
partIndex = Inventory.lookupPart(searchPart);
Part tempPart = Inventory.getPartInventory().get(partIndex);
ObservableList<Part> tempProdList = FXCollections.observableArrayList();
tempProdList.add(tempPart);
TablePart.setItems(tempProdList);
}
}

@FXML
void HomeDeletePartOnAction(ActionEvent event) throws IOException {
Part part = TablePart.getSelectionModel().getSelectedItem();
if (validatePartDelete(part)) {
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Part Delete Error.");
alert.setHeaderText("Part cannot be removed.");
alert.setContentText("This part is used in a product.");
alert.showAndWait();
} else {
Alert alert = new Alert(AlertType.CONFIRMATION);
alert.initModality(Modality.NONE);
alert.setTitle("Product Delete");
alert.setHeaderText("Confirm?");
alert.setContentText("Are you sure you want to delete " + part.getPartName() + "?");
Optional<ButtonType> result = alert.showAndWait();

if (result.get() == ButtonType.OK) {
removePart(part);
updatePartTableView();
System.out.println("Part " + part.getPartName() + " was removed.");
} else {
System.out.println("Part " + part.getPartName() + " was not removed.");
}
}
}

@Override
public void initialize(URL url, ResourceBundle rb) {
PartID.setCellValueFactory(cellData -> cellData.getValue().partIDProperty().asObject());
PartName.setCellValueFactory(cellData -> cellData.getValue().partNameProperty());
PartInventoryLevel.setCellValueFactory(cellData -> cellData.getValue().partInvProperty().asObject());
PartPPU.setCellValueFactory(cellData -> cellData.getValue().partPriceProperty().asObject());
ProductID.setCellValueFactory(cellData -> cellData.getValue().productIDProperty().asObject());
ProductName.setCellValueFactory(cellData -> cellData.getValue().productNameProperty());
ProductInventoryLevel.setCellValueFactory(cellData -> cellData.getValue().productInvProperty().asObject());
ProductPPU.setCellValueFactory(cellData -> cellData.getValue().productPriceProperty().asObject());
updatePartTableView();
updateProductTableView();
}

public void updatePartTableView() {
TablePart.setItems(getPartInventory());
}

public void updateProductTableView() {
TableProduct.setItems(getProductInventory());
}

public void setMainApp(InventorySystem mainApp) {
updatePartTableView();
updateProductTableView();
}
}

添加部件 Controller :

package ViewController;

import Model.InhousePart;
import Model.Inventory;
import Model.OutsourcedPart;
import Model.Part;
import javafx.scene.control.Label;
import java.io.IOException;
import java.net.URL;
import java.util.Optional;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;

import javafx.scene.control.Button;
import javafx.scene.control.ButtonType;
import javafx.scene.control.RadioButton;
import javafx.scene.control.TextField;
import javafx.stage.Modality;
import javafx.stage.Stage;

/**
* FXML Controller class
*
* @author Andrew
*/
public class AddPartController implements Initializable {

@FXML
private RadioButton APRadialInhouse;
@FXML
private RadioButton APRadialOutsourced;
@FXML
private TextField IDField;
@FXML
private TextField NameField;
@FXML
private TextField InvField;
@FXML
private TextField PPUField;
@FXML
private TextField SwapField;
@FXML
private TextField MinField;
@FXML
private TextField MaxField;
@FXML
private Button APSave;
@FXML
private Button APButtonCancel;
@FXML
private Label APSwapLabel;

private boolean isOutsourced;
private String exceptionMessage = new String();
private int partID;

/**
* Initializes the controller class.
*/
//Initialize Controller
@Override
public void initialize(URL url, ResourceBundle rb) {
partID = Inventory.getPartIDCount();
IDField.setText("AUTO GEN: " + partID);
}
//Inhouse Radial
@FXML
private void AddPartsInHouseRadio(ActionEvent event) {
isOutsourced = false;
APSwapLabel.setText("Machine ID");
}
//Outsourced Radial
@FXML
private void APOutsourcedOnAction(ActionEvent event) {
isOutsourced = true;
APSwapLabel.setText("Company Name");
}
//Save Button
@FXML
private void APSaveOnAction(ActionEvent event) throws IOException {
String partName = NameField.getText();
String partInv = InvField.getText();
String partPrice = PPUField.getText();
String partMin = MinField.getText();
String partMax = MaxField.getText();
String partDyn = SwapField.getText();

try {
exceptionMessage = Part.isPartValid(partName, Integer.parseInt(partMin), Integer.parseInt(partMax), Integer.parseInt(partInv), Double.parseDouble(partPrice), exceptionMessage);
if (exceptionMessage.length() > 0) {
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Error Adding Part");
alert.setHeaderText("Error");
alert.setContentText(exceptionMessage);
alert.showAndWait();
exceptionMessage = "";
} else {
if (isOutsourced == false) {
InhousePart iPart = new InhousePart();

iPart.setPartID(partID);
iPart.setPartName(partName);
iPart.setPartPrice(Double.parseDouble(partPrice));
iPart.setPartInStock(Integer.parseInt(partInv));
iPart.setPartMin(Integer.parseInt(partMin));
iPart.setPartMax(Integer.parseInt(partMax));
iPart.setPartMachineID(Integer.parseInt(partDyn));
Inventory.addPart(iPart);
} else {
OutsourcedPart oPart = new OutsourcedPart();

oPart.setPartID(partID);
oPart.setPartName(partName);
oPart.setPartPrice(Double.parseDouble(partPrice));
oPart.setPartInStock(Integer.parseInt(partInv));
oPart.setPartMin(Integer.parseInt(partMin));
oPart.setPartMax(Integer.parseInt(partMax));
oPart.setPartCompanyName(partDyn);
Inventory.addPart(oPart);
}

Parent partsSave = FXMLLoader.load(getClass().getResource("HomeWindow.fxml"));
Scene scene = new Scene(partsSave);
Stage window = (Stage) ((Node) event.getSource()).getScene().getWindow();
window.setScene(scene);
window.show();
}
} catch (NumberFormatException e) {
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Error Adding Part");
alert.setHeaderText("Error");
alert.setContentText("Form contains blank fields.");
alert.showAndWait();
}
}
//Cancel Button
@FXML
private void APButtonCancelOnAction(ActionEvent event) throws IOException {

Alert alert = new Alert(AlertType.CONFIRMATION);
alert.initModality(Modality.NONE);
alert.setTitle("Confirmation");
alert.setHeaderText("Confirm Delete");
alert.setContentText("Are you sure you want to delete part " + NameField.getText() + "?");
Optional<ButtonType> result = alert.showAndWait();

if (result.get() == ButtonType.OK) {
Parent partsCancel = FXMLLoader.load(getClass().getResource("HomeWindow.fxml"));
Scene scene = new Scene(partsCancel);
Stage window = (Stage) ((Node) event.getSource()).getScene().getWindow();
window.setScene(scene);
window.show();
} else {
System.out.println("Cancel has been clicked.");
}

}
}

AddPart.FXML:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.Scene?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.RadioButton?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>

<Scene xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ViewController.AddPartController">
<AnchorPane prefHeight="473.0" prefWidth="513.0">
<children>
<Label layoutX="24.0" layoutY="24.0" text="Add Part">
<font>
<Font size="18.0" />
</font>
</Label>
<RadioButton fx:id="APRadialInhouse" layoutX="163.0" layoutY="29.0" mnemonicParsing="false" onAction="#AddPartsInHouseRadio" text="In-House">
</RadioButton>
<RadioButton fx:id="APRadialOutsourced" layoutX="283.0" layoutY="29.0" mnemonicParsing="false" onAction="#APOutsourcedOnAction" text="Outsourced" />
<Label layoutX="80.0" layoutY="204.0" text="Inv" />
<Label layoutX="80.0" layoutY="109.0" text="ID" />
<Label layoutX="80.0" layoutY="158.0" text="Name" />
<Label layoutX="80.0" layoutY="302.0" text="Max" />
<Label layoutX="80.0" layoutY="251.0" text="Price/Cost" />
<Label layoutX="253.0" layoutY="302.0" text="Min" />
<Label fx:id="APSwapLabel" layoutX="82.0" layoutY="344.0" text="Machine ID" />
<TextField fx:id="IDField" disable="true" editable="false" layoutX="179.0" layoutY="105.0" promptText="ID" />
<TextField fx:id="NameField" layoutX="179.0" layoutY="154.0" promptText="Part Name" />
<TextField fx:id="InvField" layoutX="179.0" layoutY="200.0" promptText="Inventory" />
<TextField fx:id="PPUField" layoutX="179.0" layoutY="247.0" promptText="Price/Cost" />
<TextField fx:id="SwapField" layoutX="182.0" layoutY="340.0" prefHeight="25.0" prefWidth="106.0" promptText="Company Name" />
<TextField fx:id="MinField" layoutX="292.0" layoutY="298.0" prefHeight="22.0" prefWidth="62.0" promptText="Min" />
<TextField fx:id="MaxField" layoutX="179.0" layoutY="298.0" prefHeight="22.0" prefWidth="62.0" promptText="Max" />
<Button fx:id="APSave" layoutX="301.0" layoutY="407.0" mnemonicParsing="false" onAction="#APSaveOnAction" prefHeight="40.0" prefWidth="82.0" text="Save" />
<Button fx:id="APButtonCancel" layoutX="399.0" layoutY="407.0" mnemonicParsing="false" onAction="#APButtonCancelOnAction" prefHeight="40.0" prefWidth="82.0" text="Cancel" />
</children></AnchorPane>
</Scene>

错误代码:

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1787)
at javafx.fxml/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1670)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Node.fireEvent(Node.java:8879)
at javafx.controls/javafx.scene.control.Button.fire(Button.java:200)
at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:206)
at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3851)
at javafx.graphics/javafx.scene.Scene$MouseHandler.access$1200(Scene.java:3579)
at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1849)
at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2588)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:397)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:434)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:390)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:433)
at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:830)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:273)
at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1782)
... 47 more
Caused by: java.lang.ClassCastException: class javafx.scene.Scene cannot be cast to class javafx.scene.Parent (javafx.scene.Scene and javafx.scene.Parent are in module javafx.graphics of loader 'app')
at InventorySystem/ViewController.HomeWindowController.HomeAddPartClick(HomeWindowController.java:115)
... 58 more

最佳答案

这里的问题是将 Parent 转换为 Scene

为您提供两种解决方案:

1。将 fxml 根更改为 Node :

例如你的 fxml 就这样开始

<AnchorPane prefHeight="473.0" prefWidth="513.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ViewController.AddPartController">
<children>
<Label layoutX="24.0" layoutY="24.0" text="Add Part">
...

而不是

<Scene xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ViewController.AddPartController">
<AnchorPane prefHeight="473.0" prefWidth="513.0">
<children>
<Label layoutX="24.0" layoutY="24.0" text="Add Part">
...

2。更改创建场景的方式:

 //REMOVE THE PARENT
//Parent addPart = FXMLLoader.load(getClass().getResource("AddPart.fxml"));
Scene scene = FXMLLoader.load(getClass().getResource("AddPart.fxml"));

希望对你有帮助

关于java - 从一个窗口移动到另一个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60607349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com