diff --git a/pom.xml b/pom.xml
index ccec90007b7180a0e5217dd1c67323f132d5f920..b89e09f4aa5adf8ff897397c06d63c055cb4c5f9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,6 +25,12 @@
             <artifactId>javafx-fxml</artifactId>
             <version>${use.javafx.version}</version>
         </dependency>
+        <!-- https://mvnrepository.com/artifact/net.sourceforge.plantuml/plantuml -->
+        <dependency>
+            <groupId>net.sourceforge.plantuml</groupId>
+            <artifactId>plantuml</artifactId>
+            <version>8059</version>
+        </dependency>
         <!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
         <dependency>
             <groupId>org.xerial</groupId>
diff --git a/src/main/java/Enigma/GuiController.java b/src/main/java/Enigma/GuiController.java
index 3bfb5056ad2d8ed737f883004b0f7747c0ed5dea..c5bb75c83804ac83e6f39aeebc35bbdcded0f63c 100644
--- a/src/main/java/Enigma/GuiController.java
+++ b/src/main/java/Enigma/GuiController.java
@@ -5,6 +5,7 @@ import javafx.scene.control.*;
 
 
 import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
 import java.util.ArrayList;
 
 public class GuiController {
@@ -133,6 +134,7 @@ public class GuiController {
 
     @FXML
     void gedrueckteTaste() {
+
     }
 
     @FXML
@@ -226,25 +228,142 @@ public class GuiController {
         assert tfKenngruppe != null : "fx:id=\"tfKenngruppe\" was not injected: check your FXML file 'gui.fxml'.";
         assert mBtnNotchPos1 != null : "fx:id=\"mBtnNotchPos1\" was not injected: check your FXML file 'gui.fxml'.";
 
+        // ActionListener den Butten hinzufügen
+        btnA.setOnAction(e -> {gedrueckteTaste(e);});
+        btnB.setOnAction(e -> {gedrueckteTaste(e);});
+        btnC.setOnAction(e -> {gedrueckteTaste(e);});
+        btnD.setOnAction(e -> {gedrueckteTaste(e);});
+        btnE.setOnAction(e -> {gedrueckteTaste(e);});
+        btnF.setOnAction(e -> {gedrueckteTaste(e);});
+        btnG.setOnAction(e -> {gedrueckteTaste(e);});
+        btnH.setOnAction(e -> {gedrueckteTaste(e);});
+        btnI.setOnAction(e -> {gedrueckteTaste(e);});
+        btnJ.setOnAction(e -> {gedrueckteTaste(e);});
+        btnK.setOnAction(e -> {gedrueckteTaste(e);});
+        btnL.setOnAction(e -> {gedrueckteTaste(e);});
+        btnM.setOnAction(e -> {gedrueckteTaste(e);});
+        btnN.setOnAction(e -> {gedrueckteTaste(e);});
+        btnO.setOnAction(e -> {gedrueckteTaste(e);});
+        btnP.setOnAction(e -> {gedrueckteTaste(e);});
+        btnQ.setOnAction(e -> {gedrueckteTaste(e);});
+        btnR.setOnAction(e -> {gedrueckteTaste(e);});
+        btnS.setOnAction(e -> {gedrueckteTaste(e);});
+        btnT.setOnAction(e -> {gedrueckteTaste(e);});
+        btnU.setOnAction(e -> {gedrueckteTaste(e);});
+        btnV.setOnAction(e -> {gedrueckteTaste(e);});
+        btnW.setOnAction(e -> {gedrueckteTaste(e);});
+        btnX.setOnAction(e -> {gedrueckteTaste(e);});
+        btnY.setOnAction(e -> {gedrueckteTaste(e);});
+        btnZ.setOnAction(e -> {gedrueckteTaste(e);});
+    }
+
+    /**
+     * Auswertung welcher Button gedrückt wurde
+     * @param e => ActionEvent des auslösenden Button
+     */
+    private void gedrueckteTaste(javafx.event.ActionEvent e) {
+        //TODO Anbindung an Klasse Hardware
+        if (e.getSource() == btnA) System.out.println("Taste A gedrückt");
+        if (e.getSource() == btnB) System.out.println("Taste B gedrückt");
+        if (e.getSource() == btnC) System.out.println("Taste C gedrückt");
+        if (e.getSource() == btnD) System.out.println("Taste D gedrückt");
+        if (e.getSource() == btnE) System.out.println("Taste E gedrückt");
+        if (e.getSource() == btnF) System.out.println("Taste F gedrückt");
+        if (e.getSource() == btnG) System.out.println("Taste G gedrückt");
+        if (e.getSource() == btnH) System.out.println("Taste H gedrückt");
+        if (e.getSource() == btnI) System.out.println("Taste I gedrückt");
+        if (e.getSource() == btnJ) System.out.println("Taste J gedrückt");
+        if (e.getSource() == btnK) System.out.println("Taste K gedrückt");
+        if (e.getSource() == btnL) System.out.println("Taste L gedrückt");
+        if (e.getSource() == btnM) System.out.println("Taste M gedrückt");
+        if (e.getSource() == btnN) System.out.println("Taste N gedrückt");
+        if (e.getSource() == btnO) System.out.println("Taste O gedrückt");
+        if (e.getSource() == btnP) System.out.println("Taste P gedrückt");
+        if (e.getSource() == btnQ) System.out.println("Taste Q gedrückt");
+        if (e.getSource() == btnR) System.out.println("Taste R gedrückt");
+        if (e.getSource() == btnS) System.out.println("Taste S gedrückt");
+        if (e.getSource() == btnT) System.out.println("Taste T gedrückt");
+        if (e.getSource() == btnU) System.out.println("Taste U gedrückt");
+        if (e.getSource() == btnV) System.out.println("Taste V gedrückt");
+        if (e.getSource() == btnW) System.out.println("Taste W gedrückt");
+        if (e.getSource() == btnX) System.out.println("Taste X gedrückt");
+        if (e.getSource() == btnY) System.out.println("Taste Y gedrückt");
+        if (e.getSource() == btnZ) System.out.println("Taste Z gedrückt");
+    }
+
+    /**
+     * Setzt die Anzeige des entsprechende Gui-Element auf die entsprechende Walze
+     *  ->d.h. welche Walze sitzt auf welcher Position
+     *
+     * @param walze => gibt die Walzennummer an (entspricht
+     * @param position => gibt die Position der Walze (entspricht
+     */
+    public void setzeWalze(int walze, int position){
+        switch (position){
+            case 1:
+                mBtnWalzPos1.setText(str[position]);
+                break;
+            case 2:
+                mBtnWalzPos2.setText(str[position]);
+                break;
+            case 3:
+                mBtnWalzPos3.setText(str[position]);
+                break;
+            default:
+                break;
+        }
     }
 
-//    /**
-//     * Setzt die Anzeige des entsprechende Gui-Element auf die entsprechende Walze
-//     *
-//     * @param walze => gibt die Walzennummer an (entspricht
-//     * @param position => gibt die Position der Walze (entspricht
-//     */
-//    public void setzeWalze(int walze, int position){
-//        switch (position){
-//            case 1:
-//              //  mBtnWalzPos1.setText();
-//                break;
-//            case 2:
-//                break;
-//            case 3:
-//                break;
-//        }
-//
-//
-//    }
+    /**
+     * Setzt den Notch (position)=> die Mitnahmeposition der Walze (walze) fest
+     * Mitnahmeposition meint => die nächste Walze wird bei erreichen dieser Position (notch)
+     * um eine Stelle versetzt
+     *
+     * @param walze     => gibt die walze an
+     * @param position  => gibt den notch der Walze (walze) an
+     */
+    public void setzeRing(int walze, int position){
+        switch (walze){
+            case 1:
+                mBtnNotchPos1.setText(num[position]);
+                break;
+            case 2:
+                mBtnNotchPos2.setText(num[position]);
+                break;
+            case 3:
+                mBtnNotchPos3.setText(num[position]);
+                break;
+            default:
+                break;
+        }
+    }
+
+    /**
+     * Setzt die Startposition/ aktuelle Position der Walze
+     * @param walze => gibt die walze an
+     * @param buchstabe gibt den Startwert bzw die aktuelle Position der Walze (walze) an
+     */
+    public void setzePosition(int walze, char buchstabe){
+        switch (walze){
+            case 1:
+                mBtnStartPos1.setText(String.valueOf(buchstabe));
+                break;
+            case 2:
+                mBtnStartPos2.setText(buchstabe+"");
+                break;
+            case 3:
+                mBtnStartPos3.setText(buchstabe+"");
+                break;
+            default:
+                break;
+        }
+    }
+
+    /**
+     * Setzt den aktuellen TagesSchluessel
+     * @param tagesSchluessel
+     */
+    public void setzeTagesSchluessel(String tagesSchluessel){
+        //TODO Benötige TestString aus der DB Codebuch
+    }
 }