我正在尝试创建一个程序来教人们有关GNU / Linux和命令行的知识,我有main.java
package sample;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
Stage window;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
window = primaryStage;
Parent root = FXMLLoader.load(getClass().getResource("login.fxml"));
primaryStage.setTitle("Learnix");
primaryStage.setScene(new Scene(root, 800, 500));
primaryStage.show();
}
}
和控制器一起去.
package sample;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import java.io.IOException;
public class loginController {
public Button loginBtn;
public void loginBtnClick() throws IOException {
System.out.println("You are logged in");
}
}
我已经尝试过诸如:
FXMLLoader.load(getClass().getResource("lessons.fxml"));
但是我不知道如何让它交换场景.我在YouTube上看过很多教程,它都有Stack Overflow,但是其中很多教程都将main.java上的所有JavaFX都包含在其中,而不是在单独的文件中,因为我正在使用SceneBuilder.
谢谢.
解决方法:
您可以调用Stage.setScene()更改整个场景,也可以通过Scene.setRoot()将根替换为新的根:
Parent newRoot = FXMLLoader.load(getClass().getResource("lessons.fxml"));
primaryStage.getScene().setRoot(newRoot);