当点击“添加任务”按钮时,我正在尝试打开新阶段。目前我有主要类的以下代码(我没有包含导入)
public class Main extends Application
{
Stage window;
private Stage primaryStage;
private BorderPane mainLayout;
@Override
public void start(Stage primaryStage) throws Exception
{
this.primaryStage = primaryStage;
this.primaryStage.setTitle("Test");
showMainView();
}
private void showMainView() throws IOException
{
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("/Main.fxml"));
Parent root = loader.load();
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
}
public void showAddStage() throws IOException
{
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("/AddTask.fxml"));
Parent addTask = loader.load();
Stage addTaskStage = new Stage();
addTaskStage.setTitle("Add Task");
addTaskStage.initModality(Modality.WINDOW_MODAL);
addTaskStage.initOwner(primaryStage);
Scene addTaskscene = new Scene(addTask);
addTaskStage.setScene(addTaskscene);
addTaskStage.showAndWait();
}
public static void main(String[] args)
{
launch(args);
}
}
我的Main.fxml文件有以下内容
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.BorderPane?>
<BorderPane xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="controller.AddTaskController">
<top>
<Button mnemonicParsing="false" onAction="#addTask" prefHeight="25.0" prefWidth="615.0" text="ADD TASK" BorderPane.alignment="CENTER" />
</top>
</BorderPane>
我有这个用于AddTask.fxml(按下'添加任务'按钮时应该打开的窗口)
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.HBox?>
<BorderPane prefHeight="500.0" prefWidth="400.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1">
<bottom>
<HBox prefHeight="40.0" prefWidth="200.0" spacing="10.0" BorderPane.alignment="CENTER">
<children>
<Button mnemonicParsing="false" prefWidth="80.0" text="Add" />
<Button mnemonicParsing="false" prefWidth="80.0" text="Cancel" />
</children>
</HBox>
</bottom>
</BorderPane>
这是控制器
package controller;
import java.io.IOException;
import Driver.Main;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
public class AddTaskController
{
private Main main;
@FXML
private void addTask() throws IOException
{
System.out.println("Hello World")
main.showAddStage();
}
}
此行System.out.println("Hello World")
仅用于测试。因此,当我点击按钮时,正在打印Hello world,这意味着我的按钮工作正常。但是,问题是当按下按钮时,新窗口AddTask.fxml不会打开。
如果您对代码有任何疑问或要求,请将其评论出来。 这个问题与正在提到的问题不同。我不想传递参数,而只是在点击按钮时打开一个新窗口。
由于