diff --git a/pom.xml b/pom.xml
index 572b5ed..d036d0d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,6 +30,16 @@
envoy-common
develop-SNAPSHOT
+
+ org.openjfx
+ javafx-controls
+ 11.0.2
+
+
+ org.openjfx
+ javafx-fxml
+ 11.0.2
+
diff --git a/src/main/java/envoy/client/ui/ChatScene.fxml b/src/main/java/envoy/client/ui/ChatScene.fxml
new file mode 100644
index 0000000..f98aab5
--- /dev/null
+++ b/src/main/java/envoy/client/ui/ChatScene.fxml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/envoy/client/ui/ChatSceneController.java b/src/main/java/envoy/client/ui/ChatSceneController.java
new file mode 100644
index 0000000..95cc8d5
--- /dev/null
+++ b/src/main/java/envoy/client/ui/ChatSceneController.java
@@ -0,0 +1,30 @@
+package envoy.client.ui;
+
+import java.util.logging.Logger;
+
+import envoy.util.EnvoyLog;
+import javafx.event.ActionEvent;
+import javafx.fxml.FXML;
+
+/**
+ * Project: envoy-client
+ * File: ChatSceneController.java
+ * Created: 26.03.2020
+ *
+ * @author Kai S. K. Engelbart
+ * @since Envoy Client v0.1-beta
+ */
+public class ChatSceneController {
+
+ private static final Logger logger = EnvoyLog.getLogger(ChatSceneController.class);
+
+ @FXML
+ public void postButtonClicked(ActionEvent e) {
+ logger.info("Post Button clicked.");
+ }
+
+ @FXML
+ public void settingsButtonClicked(ActionEvent e) {
+ logger.info("Settings Button clicked.");
+ }
+}
diff --git a/src/main/java/envoy/client/ui/Startup.java b/src/main/java/envoy/client/ui/Startup.java
new file mode 100644
index 0000000..9179078
--- /dev/null
+++ b/src/main/java/envoy/client/ui/Startup.java
@@ -0,0 +1,34 @@
+package envoy.client.ui;
+
+import javafx.application.Application;
+import javafx.fxml.FXMLLoader;
+import javafx.scene.Scene;
+import javafx.scene.layout.GridPane;
+import javafx.stage.Stage;
+
+/**
+ * Project: envoy-client
+ * File: Startup.java
+ * Created: 26.03.2020
+ *
+ * @author Kai S. K. Engelbart
+ * @since Envoy Client v0.1-beta
+ */
+public final class Startup extends Application {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void start(Stage primaryStage) throws Exception {
+ var loader = new FXMLLoader(getClass().getResource("ChatScene.fxml"));
+ var anchorPane = loader.load();
+
+ var chatScene = new Scene(anchorPane);
+ primaryStage.setTitle("Envoy");
+ primaryStage.setScene(chatScene);
+ primaryStage.show();
+ }
+
+ public static void main(String[] args) { launch(args); }
+}
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index d5c969a..fc96e79 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -14,4 +14,8 @@ module envoy {
requires transitive java.logging;
requires transitive java.naming;
requires transitive java.prefs;
+ requires javafx.controls;
+ requires javafx.fxml;
+
+ opens envoy.client.ui to javafx.graphics, javafx.fxml;
}