EncodingDecodingTool/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── rockmelodies/
│ │ │ └── encodingdecodingtool/
│ │ │ ├── MainApp.java
│ │ │ ├── controller/
│ │ │ │ └── MainController.java
│ │ │ └── util/
│ │ │ └── CryptoUtils.java
│ │ └── resources/
│ │ └── com/
│ │ └── rockmelodies/
│ │ └── encodingdecodingtool/
│ │ └── view/
│ │ ├── main_layout.fxml
│ │ └── styles.css
└── pom.xml
# MainApp.java
package com.rockmelodies.encodingdecodingtool;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;public class MainApp extends Application {@Overridepublic void start(Stage primaryStage) throws Exception {Parent root = FXMLLoader.load(getClass().getResource("/com/rockmelodies/encodingdecodingtool/view/main_layout.fxml"));primaryStage.setTitle("Encoding & Decoding Tool");primaryStage.setScene(new Scene(root));primaryStage.show();}public static void main(String[] args) {launch(args);}
}
# CryptoUtils.java
package com.rockmelodies.encodingdecodingtool;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;public class MainApp extends Application {@Overridepublic void start(Stage primaryStage) throws Exception {Parent root = FXMLLoader.load(getClass().getResource("/com/rockmelodies/encodingdecodingtool/view/main_layout.fxml"));primaryStage.setTitle("Encoding & Decoding Tool");primaryStage.setScene(new Scene(root));primaryStage.show();}public static void main(String[] args) {launch(args);}
}
# MainController
package com.rockmelodies.encodingdecodingtool.controller;import javafx.fxml.FXML;
import javafx.scene.Scene;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import com.rockmelodies.encodingdecodingtool.util.CryptoUtils;public class MainController {@FXMLprivate TextField inputField;@FXMLprivate TextArea outputArea;@FXMLprivate void handleBase64Encode() {String input = inputField.getText();String encoded = CryptoUtils.base64Encode(input);outputArea.setText(encoded);}@FXMLprivate void handleBase64Decode() {String input = inputField.getText();String decoded = CryptoUtils.base64Decode(input);outputArea.setText(decoded);}public void switchTheme(String theme) {Scene scene = inputField.getScene();scene.getStylesheets().clear();scene.getStylesheets().add(getClass().getResource("/com/rockmelodies/encodingdecodingtool/view/" + theme + ".css").toExternalForm());}// Add more handlers for other encoding/decoding and encryption/decryption methods
}
main_layout.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?><VBox xmlns:fx="http://javafx.com/fxml" fx:controller="com.rockmelodies.encodingdecodingtool.controller.MainController"><TextField fx:id="inputField" promptText="Enter text here..."/><Button text="Base64 Encode" onAction="#handleBase64Encode"/><Button text="Base64 Decode" onAction="#handleBase64Decode"/><!-- Add more buttons for other encoding/decoding and encryption/decryption methods --><TextArea fx:id="outputArea" editable="false" promptText="Output will appear here..."/>
</VBox>
styless.css
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?><VBox xmlns:fx="http://javafx.com/fxml" fx:controller="com.rockmelodies.encodingdecodingtool.controller.MainController"><TextField fx:id="inputField" promptText="Enter text here..."/><Button text="Base64 Encode" onAction="#handleBase64Encode"/><Button text="Base64 Decode" onAction="#handleBase64Decode"/><!-- Add more buttons for other encoding/decoding and encryption/decryption methods --><TextArea fx:id="outputArea" editable="false" promptText="Output will appear here..."/>
</VBox>