implement the start page

This commit is contained in:
Jonas Hinterdorfer 2025-05-09 08:23:15 +02:00
parent e9d91a1986
commit 2652138ddd
5 changed files with 64 additions and 7 deletions

View File

@ -8,9 +8,10 @@ import javafx.stage.Stage;
import java.io.IOException;
public class App extends Application {
// Der gesamte fxml code wurde mithilfe des Github Copilotes generiert
@Override
public void start(Stage stage) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(App.class.getResource("answerText.fxml"));
FXMLLoader fxmlLoader = new FXMLLoader(App.class.getResource("main.fxml"));
Scene scene = new Scene(fxmlLoader.load(), 320, 240);
stage.setTitle("Question Catalog");
stage.setScene(scene);

View File

@ -0,0 +1,23 @@
package at.ionas999.questioncatalog;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.event.ActionEvent;
import java.io.IOException;
public class Utils {
public static void switchScenes(String fxmlFileName, Stage stage) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(App.class.getResource(fxmlFileName));
Parent root = fxmlLoader.load();
stage.setScene(new Scene(root));
stage.show();
}
public static Stage getStageFromActionEven(ActionEvent actionEvent){
return (Stage) ((javafx.scene.Node) actionEvent.getSource()).getScene().getWindow();
}
}

View File

@ -1,4 +1,34 @@
package at.ionas999.questioncatalog.controller;
import at.ionas999.questioncatalog.Utils;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.stage.Stage;
import java.io.IOException;
public class MainController {
@FXML
private void addNewBtnClick(ActionEvent actionEvent) throws IOException {
Stage stage = Utils.getStageFromActionEven(actionEvent);
Utils.switchScenes("upload.fxml", stage);
}
@FXML
private void viewBtnClick(ActionEvent actionEvent) throws IOException {
Stage stage = Utils.getStageFromActionEven(actionEvent);
Utils.switchScenes("view.fxml", stage);
}
@FXML
private void learnBtnClick(ActionEvent actionEvent) throws IOException {
Stage stage = Utils.getStageFromActionEven(actionEvent);
Utils.switchScenes("answerText.fxml", stage);
}
@FXML
private void testBtnClick(ActionEvent actionEvent) throws IOException {
Stage stage = Utils.getStageFromActionEven(actionEvent);
Utils.switchScenes("answerText.fxml", stage);
}
}

View File

@ -1,6 +1,7 @@
module at.ionas999.questioncatalog {
requires javafx.controls;
requires javafx.fxml;
requires java.desktop;
opens at.ionas999.questioncatalog to javafx.fxml;
opens at.ionas999.questioncatalog.controller to javafx.fxml; // Add this line

View File

@ -1,16 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.VBox?>
<VBox alignment="CENTER" spacing="20.0" xmlns:fx="http://javafx.com/fxml">
<VBox alignment="CENTER" spacing="20.0"
xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml"
fx:controller="at.ionas999.questioncatalog.controller.MainController">
<Label text="Question Catalog" style="-fx-font-size: 24px; -fx-font-weight: bold;" />
<VBox spacing="10.0" alignment="CENTER">
<Button text="Add New" prefWidth="150" />
<Button text="View" prefWidth="149" />
<Button text="Learn" prefWidth="150" />
<Button text="Test" prefWidth="150" />
<Button text="Add New" onAction="#addNewBtnClick" prefWidth="150" />
<Button text="View" onAction="#viewBtnClick" prefWidth="149" />
<Button text="Learn" onAction="#learnBtnClick" prefWidth="150" />
<Button text="Test" onAction="#testBtnClick" prefWidth="150" />
</VBox>
</VBox>