From d7d0c80bde6fec74f333d047380810a256b1f767 Mon Sep 17 00:00:00 2001 From: Arshida_0 Date: Mon, 18 May 2026 11:27:41 +0430 Subject: [PATCH] WS 06 --- src/main/java/workshop/Controller.java | 29 +++++++++++++++++++++++- src/main/java/workshop/Launcher.java | 1 + src/main/java/workshop/Main.java | 9 ++++++++ src/main/resources/workshop/pricing.fxml | 4 ++-- 4 files changed, 40 insertions(+), 3 deletions(-) diff --git a/src/main/java/workshop/Controller.java b/src/main/java/workshop/Controller.java index 3092fab..8bed083 100644 --- a/src/main/java/workshop/Controller.java +++ b/src/main/java/workshop/Controller.java @@ -1,39 +1,66 @@ package workshop; import javafx.fxml.FXML; +import javafx.scene.control.Alert; import javafx.scene.control.Label; import javafx.scene.control.Button; public class Controller { + @FXML public Label BasicPriceLabel; + @FXML public Label ProPriceLabel; @FXML private Label titleLabel; @FXML private Button themeToggle; private boolean isDark = true; // TODO: (Optional) Create initialize function and use it to set prices during runtime. + @FXML + private void initialize() { + BasicPriceLabel.setText("$12.99 / month"); + ProPriceLabel.setText("$22.99 / month"); + } @FXML private void buyBasic() { // TODO: Call showAlert() with a message indicating the user entered the payment gateway + showAlert("Basic Plan Selected. ", Alert.AlertType.CONFIRMATION); } @FXML private void buyPro() { // TODO: Call showAlert() with a message indicating the user entered the payment gateway + showAlert("Pro Plan Selected. ", Alert.AlertType.CONFIRMATION); } @FXML private void buyEnterprise() { // TODO: Call showAlert() with a message indicating the user entered the payment gateway + showAlert("Enterprice Plan Selected. ", Alert.AlertType.CONFIRMATION); } @FXML private void toggleTheme() { + isDark = !isDark; + + themeToggle.getScene().getStylesheets().clear(); + if (isDark) { + themeToggle.getScene().getStylesheets().add(getClass().getResource("light.css").toExternalForm()); + themeToggle.setText("Switched to Light mode"); + } + else { + themeToggle.getScene().getStylesheets().add(getClass().getResource("style.css").toExternalForm()); + themeToggle.setText("Switched to Dark mode"); + } + // TODO: Toggle the isDark flag. If dark, switch to style.css and set button text to "Switch to Light Mode" // TODO: If light, switch to light.css and set button text to "Switch to Dark Mode" } - private void showAlert(String message) { + private void showAlert(String message, Alert.AlertType alertType) { // TODO: Create a new Alert of type INFORMATION with the given message and display it + Alert alert = new Alert(alertType); + alert.setHeaderText(message); + alert.setContentText("You're being redirected to the payment gateway..."); + alert.show(); } } diff --git a/src/main/java/workshop/Launcher.java b/src/main/java/workshop/Launcher.java index 0f82aeb..3562876 100644 --- a/src/main/java/workshop/Launcher.java +++ b/src/main/java/workshop/Launcher.java @@ -4,6 +4,7 @@ import javafx.application.Application; public class Launcher { public static void main(String[] args) { + Application.launch(Main.class); // TODO: Launch the JavaFX application by calling Application.launch(Main.class) } } diff --git a/src/main/java/workshop/Main.java b/src/main/java/workshop/Main.java index d6cd3fd..2a9fdce 100644 --- a/src/main/java/workshop/Main.java +++ b/src/main/java/workshop/Main.java @@ -1,6 +1,8 @@ package workshop; import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Scene; import javafx.stage.Stage; public class Main extends Application { @@ -9,5 +11,12 @@ public class Main extends Application { // TODO: Load the FXML file using FXMLLoader.load() and get the Parent root // TODO: Create a Scene with the root (width=750, height=450) and add the stylesheet "style.css" // TODO: Set the stage title to "Pricing Plans", set the scene, and call stage.show() + FXMLLoader fxmlloader = new FXMLLoader(getClass().getResource("pricing.fxml")); + Scene scene = new Scene(fxmlloader.load(), 750, 450); + scene.getStylesheets().add(getClass().getResource("style.css").toExternalForm()); + + stage.setScene(scene); + stage.setTitle("Pricing Plans"); + stage.show(); } } diff --git a/src/main/resources/workshop/pricing.fxml b/src/main/resources/workshop/pricing.fxml index b54db3b..4aaf9e3 100644 --- a/src/main/resources/workshop/pricing.fxml +++ b/src/main/resources/workshop/pricing.fxml @@ -17,14 +17,14 @@