diff --git a/build/built-jar.properties b/build/built-jar.properties
index 61cdadb..79801b4 100644
--- a/build/built-jar.properties
+++ b/build/built-jar.properties
@@ -1,4 +1,4 @@
-#Fri, 09 Aug 2019 06:39:47 +0200
+#Fri, 09 Aug 2019 06:43:38 +0200
D\:\\Git-Repos\\java-fx-8-samples=
diff --git a/build/classes/steganography/FXMLDocument.fxml b/build/classes/steganography/FXMLDocument.fxml
new file mode 100644
index 0000000..d769ec2
--- /dev/null
+++ b/build/classes/steganography/FXMLDocument.fxml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/classes/steganography/FXMLDocumentController.class b/build/classes/steganography/FXMLDocumentController.class
new file mode 100644
index 0000000..da7425f
Binary files /dev/null and b/build/classes/steganography/FXMLDocumentController.class differ
diff --git a/build/classes/steganography/Main.class b/build/classes/steganography/Main.class
new file mode 100644
index 0000000..ce762cc
Binary files /dev/null and b/build/classes/steganography/Main.class differ
diff --git a/build/classes/steganography/SystemCheck.class b/build/classes/steganography/SystemCheck.class
new file mode 100644
index 0000000..0aa83f0
Binary files /dev/null and b/build/classes/steganography/SystemCheck.class differ
diff --git a/build/classes/utils/Runner.class b/build/classes/utils/Runner.class
index 3f9757f..eaedd94 100644
Binary files a/build/classes/utils/Runner.class and b/build/classes/utils/Runner.class differ
diff --git a/dist/java-fx-8-samples.html b/dist/java-fx-8-samples.html
index a0b294d..d932a73 100644
--- a/dist/java-fx-8-samples.html
+++ b/dist/java-fx-8-samples.html
@@ -4,7 +4,7 @@
function launchApplication(jnlpfile) {
dtjava.launch( {
url : 'java-fx-8-samples.jnlp',
- jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iamF2YS1meC04LXNhbXBsZXMuam5scCI+DQogIDxpbmZvcm1hdGlvbj4NCiAgICA8dGl0bGU+amF2YS1meC04LXNhbXBsZXM8L3RpdGxlPg0KICAgIDx2ZW5kb3I+bXNjaHc8L3ZlbmRvcj4NCiAgICA8ZGVzY3JpcHRpb24+bnVsbDwvZGVzY3JpcHRpb24+DQogICAgPG9mZmxpbmUtYWxsb3dlZC8+DQogIDwvaW5mb3JtYXRpb24+DQogIDxyZXNvdXJjZXM+DQogICAgPGoyc2UgdmVyc2lvbj0iMS42KyIgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9hdXRvZGwvajJzZSIvPg0KICAgIDxqYXIgaHJlZj0iamF2YS1meC04LXNhbXBsZXMuamFyIiBzaXplPSIyMTQ1OTEiIGRvd25sb2FkPSJlYWdlciIgLz4NCiAgPC9yZXNvdXJjZXM+DQogIDxqZng6amF2YWZ4LWRlc2MgIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIiBtYWluLWNsYXNzPSJ1dGlscy5SdW5uZXIiICBuYW1lPSJqYXZhLWZ4LTgtc2FtcGxlcyIgLz4NCiAgPHVwZGF0ZSBjaGVjaz0iYWx3YXlzIi8+DQo8L2pubHA+DQo='
+ jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iamF2YS1meC04LXNhbXBsZXMuam5scCI+DQogIDxpbmZvcm1hdGlvbj4NCiAgICA8dGl0bGU+amF2YS1meC04LXNhbXBsZXM8L3RpdGxlPg0KICAgIDx2ZW5kb3I+bXNjaHc8L3ZlbmRvcj4NCiAgICA8ZGVzY3JpcHRpb24+bnVsbDwvZGVzY3JpcHRpb24+DQogICAgPG9mZmxpbmUtYWxsb3dlZC8+DQogIDwvaW5mb3JtYXRpb24+DQogIDxyZXNvdXJjZXM+DQogICAgPGoyc2UgdmVyc2lvbj0iMS42KyIgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9hdXRvZGwvajJzZSIvPg0KICAgIDxqYXIgaHJlZj0iamF2YS1meC04LXNhbXBsZXMuamFyIiBzaXplPSIyMTk2MjYiIGRvd25sb2FkPSJlYWdlciIgLz4NCiAgPC9yZXNvdXJjZXM+DQogIDxqZng6amF2YWZ4LWRlc2MgIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIiBtYWluLWNsYXNzPSJ1dGlscy5SdW5uZXIiICBuYW1lPSJqYXZhLWZ4LTgtc2FtcGxlcyIgLz4NCiAgPHVwZGF0ZSBjaGVjaz0iYWx3YXlzIi8+DQo8L2pubHA+DQo='
},
{
javafx : '8.0+'
@@ -24,7 +24,7 @@
placeholder : 'javafx-app-placeholder',
width : '800',
height : '600',
- jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iamF2YS1meC04LXNhbXBsZXMuam5scCI+DQogIDxpbmZvcm1hdGlvbj4NCiAgICA8dGl0bGU+amF2YS1meC04LXNhbXBsZXM8L3RpdGxlPg0KICAgIDx2ZW5kb3I+bXNjaHc8L3ZlbmRvcj4NCiAgICA8ZGVzY3JpcHRpb24+bnVsbDwvZGVzY3JpcHRpb24+DQogICAgPG9mZmxpbmUtYWxsb3dlZC8+DQogIDwvaW5mb3JtYXRpb24+DQogIDxyZXNvdXJjZXM+DQogICAgPGoyc2UgdmVyc2lvbj0iMS42KyIgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9hdXRvZGwvajJzZSIvPg0KICAgIDxqYXIgaHJlZj0iamF2YS1meC04LXNhbXBsZXMuamFyIiBzaXplPSIyMTQ1OTEiIGRvd25sb2FkPSJlYWdlciIgLz4NCiAgPC9yZXNvdXJjZXM+DQogIDxqZng6amF2YWZ4LWRlc2MgIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIiBtYWluLWNsYXNzPSJ1dGlscy5SdW5uZXIiICBuYW1lPSJqYXZhLWZ4LTgtc2FtcGxlcyIgLz4NCiAgPHVwZGF0ZSBjaGVjaz0iYWx3YXlzIi8+DQo8L2pubHA+DQo='
+ jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iamF2YS1meC04LXNhbXBsZXMuam5scCI+DQogIDxpbmZvcm1hdGlvbj4NCiAgICA8dGl0bGU+amF2YS1meC04LXNhbXBsZXM8L3RpdGxlPg0KICAgIDx2ZW5kb3I+bXNjaHc8L3ZlbmRvcj4NCiAgICA8ZGVzY3JpcHRpb24+bnVsbDwvZGVzY3JpcHRpb24+DQogICAgPG9mZmxpbmUtYWxsb3dlZC8+DQogIDwvaW5mb3JtYXRpb24+DQogIDxyZXNvdXJjZXM+DQogICAgPGoyc2UgdmVyc2lvbj0iMS42KyIgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9hdXRvZGwvajJzZSIvPg0KICAgIDxqYXIgaHJlZj0iamF2YS1meC04LXNhbXBsZXMuamFyIiBzaXplPSIyMTk2MjYiIGRvd25sb2FkPSJlYWdlciIgLz4NCiAgPC9yZXNvdXJjZXM+DQogIDxqZng6amF2YWZ4LWRlc2MgIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIiBtYWluLWNsYXNzPSJ1dGlscy5SdW5uZXIiICBuYW1lPSJqYXZhLWZ4LTgtc2FtcGxlcyIgLz4NCiAgPHVwZGF0ZSBjaGVjaz0iYWx3YXlzIi8+DQo8L2pubHA+DQo='
},
{
javafx : '8.0+'
diff --git a/dist/java-fx-8-samples.jar b/dist/java-fx-8-samples.jar
index c63f73a..117581f 100644
Binary files a/dist/java-fx-8-samples.jar and b/dist/java-fx-8-samples.jar differ
diff --git a/dist/java-fx-8-samples.jnlp b/dist/java-fx-8-samples.jnlp
index 9be5021..297dd20 100644
--- a/dist/java-fx-8-samples.jnlp
+++ b/dist/java-fx-8-samples.jnlp
@@ -8,7 +8,7 @@
-
+
diff --git a/src/steganography/FXMLDocument.fxml b/src/steganography/FXMLDocument.fxml
new file mode 100644
index 0000000..d769ec2
--- /dev/null
+++ b/src/steganography/FXMLDocument.fxml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/steganography/FXMLDocumentController.java b/src/steganography/FXMLDocumentController.java
new file mode 100644
index 0000000..811f54b
--- /dev/null
+++ b/src/steganography/FXMLDocumentController.java
@@ -0,0 +1,141 @@
+
+package steganography;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.util.ResourceBundle;
+import java.util.Scanner;
+import javafx.event.ActionEvent;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+import javafx.scene.control.Button;
+import javafx.scene.control.CheckBox;
+import javafx.scene.control.Label;
+import javafx.scene.control.TextField;
+import javafx.stage.FileChooser;
+import javafx.stage.Stage;
+
+/**
+ *
+ * @author Marcel
+ */
+public class FXMLDocumentController implements Initializable {
+
+ Stage chooser = new Stage();
+ FileChooser fileChooser = new FileChooser();
+ File inputDatei;
+ File inputBild;
+ File output;
+ File bat;
+ String command = "";
+
+ @FXML
+ private Button btnEinlesenPic;
+ @FXML
+ private Button btnEinlesenDat;
+ @FXML
+ private TextField txtPicEinlesen;
+ @FXML
+ private TextField txtDateiEinlesen;
+ @FXML
+ private TextField txtEndname;
+ @FXML
+ private Label lblFehler;
+ @FXML
+ private Button btnStart;
+ @FXML
+ private TextField txtSavedAt;
+ @FXML
+ private Button saveAs;
+ @FXML
+ private Button btnSaveBat;
+ @FXML
+ private CheckBox cbSaveAsBat;
+ @FXML
+ private TextField txtBatSave;
+
+ public void initialize(URL url, ResourceBundle rb) {
+ }
+
+ @FXML
+ private void handleEinlesenPic(ActionEvent event) {
+
+ fileChooser.setTitle("Open Resource File");
+ fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("JPG", "*.jpg"));
+ inputBild = fileChooser.showOpenDialog(chooser);
+ fileChooser.getExtensionFilters().clear();
+ if (inputBild != null) {
+ txtPicEinlesen.setText(inputBild.getAbsolutePath());
+ lblFehler.setText("Input Picture set");
+ } else {
+ lblFehler.setText("No file selected");
+ }
+ }
+
+ @FXML
+ private void handleEinlesenDat(ActionEvent event) {
+ fileChooser.setTitle("Open Resource File");
+ fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("ZIP", "*.zip"));
+ inputDatei = fileChooser.showOpenDialog(chooser);
+ fileChooser.getExtensionFilters().clear();
+ if (inputDatei != null) {
+ txtDateiEinlesen.setText(inputDatei.getAbsolutePath());
+ lblFehler.setText("Input File set.");
+ } else {
+ lblFehler.setText("No file selected.");
+ }
+ }
+
+ @FXML
+ private void handleStart(ActionEvent event) throws IOException {
+
+ if (inputBild != null && inputDatei != null && output != null) {
+
+ if (SystemCheck.isWindows()) {
+
+ command = "copy /b " + txtPicEinlesen.getText() + " + /b " + txtDateiEinlesen.getText() + " " + txtEndname.getText();
+ txtSavedAt.setText(output.getAbsolutePath());
+ doProcessWin();
+ lblFehler.setText("File created.");
+ } else {
+ lblFehler.setText("Unsupported System.");
+ }
+ } else {
+ if (inputBild == null) {
+ lblFehler.setText("No input image.");
+ } else if (inputDatei == null) {
+ lblFehler.setText("No input File.");
+ } else if (output == null) {
+ lblFehler.setText("No output File.");
+ }
+ }
+ }
+
+ @FXML
+ private void handleSaveAs(ActionEvent event) {
+ fileChooser.setTitle("Save File");
+ fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("JPG", "*.jpg"));
+ //fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("All Files", "*.*"));
+ output = fileChooser.showSaveDialog(chooser);
+ fileChooser.getExtensionFilters().clear();
+ if (output != null) {
+ txtEndname.setText(output.getAbsolutePath());
+ lblFehler.setText("Output File set");
+ } else {
+ lblFehler.setText("No file set");
+ }
+ }
+
+ private void doProcessWin() throws IOException {
+ ProcessBuilder builder = new ProcessBuilder("cmd", "/c", command);
+ //builder.directory(output.getAbsoluteFile());
+ Process p = builder.start();
+ Scanner s = new Scanner(p.getInputStream()).useDelimiter("\\Z");
+ }
+
+ private void doProcessLin() {
+
+ }
+
+}
diff --git a/src/steganography/Main.java b/src/steganography/Main.java
new file mode 100644
index 0000000..4e39c14
--- /dev/null
+++ b/src/steganography/Main.java
@@ -0,0 +1,40 @@
+
+package steganography;
+
+import java.io.IOException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javafx.application.Application;
+import static javafx.fxml.FXMLLoader.load;
+import javafx.scene.Parent;
+import javafx.scene.Scene;
+import javafx.stage.Stage;
+
+/**
+ *
+ * @author Marcel
+ */
+public class Main extends Application {
+
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String[] args) {
+ launch(args);
+ }
+
+ @Override
+ public void start(Stage stage) {
+ Parent root = null;
+ try {
+ root = load(getClass().getResource("FXMLDocument.fxml"));
+ } catch (IOException ex) {
+ Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ Scene scene = new Scene(root);
+ stage.setScene(scene);
+ stage.show();
+ }
+
+}
diff --git a/src/steganography/SystemCheck.java b/src/steganography/SystemCheck.java
new file mode 100644
index 0000000..f87b02b
--- /dev/null
+++ b/src/steganography/SystemCheck.java
@@ -0,0 +1,78 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package steganography;
+
+import static java.lang.System.getProperty;
+
+/**
+ *
+ * @author Marcel
+ */
+public class SystemCheck {
+
+ private static final String OS = getProperty("os.name").toLowerCase();
+
+ /*
+ public static void main(String[] args) {
+
+ System.out.println(OS);
+
+ if (isWindows()) {
+ System.out.println("This is Windows");
+ } else if (isMac()) {
+ System.out.println("This is Mac");
+ } else if (isUnix()) {
+ System.out.println("This is Unix or Linux");
+ } else if (isSolaris()) {
+ System.out.println("This is Solaris");
+ } else {
+ System.out.println("Your OS is not support!!");
+ }
+ }
+ */
+ /**
+ *
+ * @return
+ */
+ public static boolean isWindows() {
+
+ return (OS.contains("win"));
+
+ }
+
+ /**
+ *
+ * @return
+ */
+ public static boolean isMac() {
+
+ return (OS.contains("mac"));
+
+ }
+
+ /**
+ *
+ * @return
+ */
+ public static boolean isUnix() {
+
+ return (OS.contains("nix") || OS.contains("nux") || OS.indexOf("aix") > 0);
+
+ }
+
+ /**
+ *
+ * @return
+ */
+ public static boolean isSolaris() {
+
+ return (OS.contains("sunos"));
+
+ }
+
+ private SystemCheck() {
+ }
+}
diff --git a/src/utils/Runner.java b/src/utils/Runner.java
index af47762..4e96540 100644
--- a/src/utils/Runner.java
+++ b/src/utils/Runner.java
@@ -148,6 +148,10 @@ public class Runner extends Application{
btn25.setOnAction(event -> new simonlightgame.Main().start(new Stage()));
gridpane.add(btn25, 0, 10);
+ Button btn26 = new Button("Start Steganographie Tool");
+ btn26.setOnAction(event -> new steganography.Main().start(new Stage()));
+ gridpane.add(btn26, 1, 10);
+
ScrollPane root = new ScrollPane(gridpane);
Scene scene = new Scene(root, 600, 400);