From 1dc2f5ceecd2581573fc7bd4bf5f29a2e34f9055 Mon Sep 17 00:00:00 2001 From: anderebe <anderebe@stud.ntnu.no> Date: Mon, 13 Mar 2023 11:10:33 +0100 Subject: [PATCH] Made an income fxml that corresponds with expenses --- .../demo/controller/SceneController.java | 22 ++- src/main/resources/view/Expenses.fxml | 13 +- src/main/resources/view/FirstMenu.fxml | 2 +- src/main/resources/view/Income.fxml | 148 ++++++++++++++++++ 4 files changed, 168 insertions(+), 17 deletions(-) create mode 100644 src/main/resources/view/Income.fxml diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java index 4c3abfd3..e27ce1f0 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java @@ -2,25 +2,12 @@ package no.ntnu.idatt1002.demo.controller; import java.io.IOException; -import java.net.URL; -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.Button; -import javafx.scene.control.ComboBox; -import javafx.scene.control.TableColumn; -import javafx.scene.control.TableView; -import javafx.scene.control.cell.PropertyValueFactory; import javafx.stage.Stage; -import no.ntnu.idatt1002.demo.data.Expense; -import no.ntnu.idatt1002.demo.data.ExpenseCategory; public class SceneController /*implements Initializable*/ { @@ -79,6 +66,15 @@ public class SceneController /*implements Initializable*/ { stage.show(); } + public void switchIncome(ActionEvent event) throws IOException { + FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/Income.fxml")); + Parent root = loader.load(); + stage = (Stage)((Node)event.getSource()).getScene().getWindow(); + scene = new Scene(root); + stage.setScene(scene); + stage.show(); + } + public void switchExpenses(ActionEvent event) throws IOException { FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/Expenses.fxml")); Parent root = loader.load(); diff --git a/src/main/resources/view/Expenses.fxml b/src/main/resources/view/Expenses.fxml index 6089a614..ec2d793a 100644 --- a/src/main/resources/view/Expenses.fxml +++ b/src/main/resources/view/Expenses.fxml @@ -33,7 +33,7 @@ <top> <HBox BorderPane.alignment="CENTER"> <children> - <Button mnemonicParsing="false" text="Return "> + <Button mnemonicParsing="false" onAction="#switchIncome" text="Return "> <opaqueInsets> <Insets left="100.0" /> </opaqueInsets> @@ -98,10 +98,17 @@ </VBox> <HBox prefHeight="100.0" prefWidth="200.0" GridPane.columnSpan="2" GridPane.rowIndex="2"> <children> - <Button mnemonicParsing="false" text="Overview" /> + <Button mnemonicParsing="false" text="Overview"> + <HBox.margin> + <Insets right="5.0" /> + </HBox.margin></Button> <Button mnemonicParsing="false" text="Income" /> - <Button mnemonicParsing="false" text="Expenses" /> + <Button disable="true" mnemonicParsing="false" text="Expenses" /> <Button mnemonicParsing="false" text="Savings" /> + <Button mnemonicParsing="false" text="Next"> + <HBox.margin> + <Insets left="170.0" /> + </HBox.margin></Button> </children> <padding> <Insets top="10.0" /> diff --git a/src/main/resources/view/FirstMenu.fxml b/src/main/resources/view/FirstMenu.fxml index 4a7ed99a..fe78dd0a 100644 --- a/src/main/resources/view/FirstMenu.fxml +++ b/src/main/resources/view/FirstMenu.fxml @@ -21,7 +21,7 @@ <Font name="Verdana" size="18.0" /> </font> </Label> - <Button layoutX="69.0" layoutY="212.0" mnemonicParsing="false" onAction="#switchNewBudget" text="New Budget"> + <Button layoutX="69.0" layoutY="212.0" mnemonicParsing="false" onAction="#switchIncome" text="New Budget"> <font> <Font size="24.0" /> </font> diff --git a/src/main/resources/view/Income.fxml b/src/main/resources/view/Income.fxml new file mode 100644 index 00000000..0e755e14 --- /dev/null +++ b/src/main/resources/view/Income.fxml @@ -0,0 +1,148 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.geometry.Insets?> +<?import javafx.scene.Cursor?> +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.ComboBox?> +<?import javafx.scene.control.TableColumn?> +<?import javafx.scene.control.TableView?> +<?import javafx.scene.image.Image?> +<?import javafx.scene.image.ImageView?> +<?import javafx.scene.layout.AnchorPane?> +<?import javafx.scene.layout.BorderPane?> +<?import javafx.scene.layout.ColumnConstraints?> +<?import javafx.scene.layout.GridPane?> +<?import javafx.scene.layout.HBox?> +<?import javafx.scene.layout.Region?> +<?import javafx.scene.layout.RowConstraints?> +<?import javafx.scene.layout.VBox?> +<?import javafx.scene.text.Font?> +<?import javafx.scene.text.Text?> + +<AnchorPane xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.ntnu.idatt1002.demo.controller.SceneController"> + <children> + <ImageView fitHeight="400.0" fitWidth="600.0" pickOnBounds="true"> + <image> + <Image url="@../Images/backgroundMini.jpg" /> + </image> + <cursor> + <Cursor fx:constant="DEFAULT" /> + </cursor> + </ImageView> + <BorderPane prefHeight="400.0" prefWidth="593.0"> + <top> + <HBox BorderPane.alignment="CENTER"> + <children> + <Button cancelButton="true" mnemonicParsing="false" onAction="#switchStartMenu" text="Return "> + <opaqueInsets> + <Insets left="100.0" /> + </opaqueInsets> + <HBox.margin> + <Insets left="10.0" top="10.0" /> + </HBox.margin> + </Button> + <Region prefHeight="70.0" prefWidth="141.0" /> + <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Income" textAlignment="CENTER" translateX="30.0"> + <HBox.margin> + <Insets /> + </HBox.margin> + <font> + <Font size="48.0" /> + </font> + </Text> + </children> + <opaqueInsets> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </opaqueInsets> + </HBox> + </top> + <center> + <GridPane BorderPane.alignment="CENTER"> + <BorderPane.margin> + <Insets bottom="40.0" left="40.0" right="40.0" /> + </BorderPane.margin> + <columnConstraints> + <ColumnConstraints hgrow="ALWAYS" maxWidth="485.3333231608073" minWidth="10.0" prefWidth="427.33335367838544" /> + <ColumnConstraints hgrow="ALWAYS" maxWidth="111.33333333333331" minWidth="10.0" prefWidth="92.66664632161456" /> + </columnConstraints> + <rowConstraints> + <RowConstraints maxHeight="65.33334064483643" minHeight="10.0" prefHeight="65.33334064483643" vgrow="SOMETIMES" /> + <RowConstraints maxHeight="298.66665744781494" minHeight="10.0" prefHeight="214.00004069010413" vgrow="SOMETIMES" /> + <RowConstraints maxHeight="298.66665744781494" minHeight="10.0" prefHeight="29.999959309895814" vgrow="SOMETIMES" /> + </rowConstraints> + <children> + <HBox alignment="BOTTOM_LEFT" prefWidth="410.0" spacing="5.0"> + <children> + <Button fx:id="add" alignment="TOP_CENTER" mnemonicParsing="false" text="Add" textAlignment="CENTER" /> + <Button fx:id="add1" alignment="TOP_CENTER" mnemonicParsing="false" text="Edit" textAlignment="CENTER" /> + <Button fx:id="add11" alignment="TOP_CENTER" mnemonicParsing="false" text="Delete" textAlignment="CENTER" /> + </children> + <opaqueInsets> + <Insets /> + </opaqueInsets> + <padding> + <Insets bottom="5.0" /> + </padding> + </HBox> + <VBox alignment="BOTTOM_LEFT" prefHeight="200.0" prefWidth="100.0" spacing="5.0" GridPane.columnIndex="1"> + <children> + <ComboBox fx:id="show" prefWidth="150.0" promptText="Show"> + <opaqueInsets> + <Insets /> + </opaqueInsets> + <VBox.margin> + <Insets bottom="5.0" /> + </VBox.margin> + </ComboBox> + </children> + </VBox> + <HBox prefHeight="100.0" prefWidth="200.0" GridPane.columnSpan="2" GridPane.rowIndex="2"> + <children> + <Button mnemonicParsing="false" text="Overview"> + <HBox.margin> + <Insets right="5.0" /> + </HBox.margin></Button> + <Button disable="true" mnemonicParsing="false" onAction="#switchIncome" text="Income" textFill="#4d1616" /> + <Button mnemonicParsing="false" onAction="#switchExpenses" text="Expenses" /> + <Button mnemonicParsing="false" text="Savings" /> + <Button mnemonicParsing="false" onAction="#switchExpenses" text="Next"> + <HBox.margin> + <Insets left="170.0" /> + </HBox.margin></Button> + </children> + <padding> + <Insets top="10.0" /> + </padding> + </HBox> + <TableView fx:id="expenseTableView" prefHeight="260.0" prefWidth="485.0" GridPane.columnSpan="2" GridPane.rowIndex="1"> + <columns> + <TableColumn fx:id="date" prefWidth="75.0" text="Date" /> + <TableColumn fx:id="amount" prefWidth="75.0" text="Amount" /> + <TableColumn fx:id="category" prefWidth="75.0" text="Category" /> + <TableColumn fx:id="description" prefWidth="75.0" text="Description" /> + </columns> + <columnResizePolicy> + <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" /> + </columnResizePolicy> + </TableView> + </children> + </GridPane> + </center> + <opaqueInsets> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </opaqueInsets> + <left> + <Region prefHeight="357.0" prefWidth="25.0" BorderPane.alignment="CENTER" /> + </left> + <right> + <Region prefHeight="357.0" prefWidth="0.0" BorderPane.alignment="CENTER" /> + </right> + <bottom> + <Region prefHeight="0.0" prefWidth="600.0" BorderPane.alignment="CENTER" /> + </bottom> + </BorderPane> + </children> + <opaqueInsets> + <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" /> + </opaqueInsets> +</AnchorPane> -- GitLab