diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/FormatHelper.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/FormatHelper.java
new file mode 100644
index 0000000000000000000000000000000000000000..9de27eae347737a6e1557162006e1188ccf86cef
--- /dev/null
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/FormatHelper.java
@@ -0,0 +1,21 @@
+package de.hhu.ba.yoshikoWrapper.gui;
+
+import java.text.NumberFormat;
+
+import javax.swing.text.NumberFormatter;
+
+public class FormatHelper {
+	
+	public static NumberFormatter getIntegerFormatter() {
+		NumberFormat format = NumberFormat.getInstance();
+	    NumberFormatter formatter = new NumberFormatter(format);
+	    formatter.setValueClass(Integer.class);
+	    formatter.setMinimum(0);
+	    formatter.setMaximum(Integer.MAX_VALUE);
+	    formatter.setAllowsInvalid(false);
+	    formatter.setCommitsOnValidEdit(true);
+	    
+	    return formatter;
+	}
+
+}
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/MainPanel.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/MainPanel.java
index 5aa2e736f4c5d1ae831db28f42d084a5aac461fc..9a817bd8f4f239f80386ba4981be3b210e4deb8e 100644
--- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/MainPanel.java
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/MainPanel.java
@@ -19,6 +19,7 @@ import de.hhu.ba.yoshikoWrapper.core.Core;
 import de.hhu.ba.yoshikoWrapper.core.NetworkParser;
 import de.hhu.ba.yoshikoWrapper.core.NodeMap;
 import de.hhu.ba.yoshikoWrapper.core.YoshikoLoader;
+import de.hhu.ba.yoshikoWrapper.gui.TimeLimitSetter;
 import de.hhu.ba.yoshikoWrapper.swig.LibraryInterface;
 import de.hhu.ba.yoshikoWrapper.swig.SWIGTYPE_p_yskInput__LibraryInput;
 import de.hhu.ba.yoshikoWrapper.swig.SWIGTYPE_p_ysk__ClusterEditingSolutions;
@@ -42,6 +43,7 @@ public class MainPanel extends JPanel implements CytoPanelComponent {
 	private LibStatusPanel libStatusPanel;
 	private JButton searchLibButton;
 	private JLabel yoshikoVersionLabel;
+	private TimeLimitSetter timeLimitSetter;
 
 	/**
 	 * Main constructor, creates a new Panel and initializes subcomponents
@@ -91,6 +93,9 @@ public class MainPanel extends JPanel implements CytoPanelComponent {
 		//
 		//
 		//
+		timeLimitSetter = new TimeLimitSetter();
+		this.add(timeLimitSetter);
+		
 		
 		yoshikoVersionLabel = new JLabel("YOSHIKO VERSION");
 		this.add(yoshikoVersionLabel);
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/NumberInputField.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/NumberInputField.java
new file mode 100644
index 0000000000000000000000000000000000000000..c876695ea66782ad73d82653060b4ba121c1afcc
--- /dev/null
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/NumberInputField.java
@@ -0,0 +1,23 @@
+package de.hhu.ba.yoshikoWrapper.gui;
+
+import java.text.NumberFormat;
+
+import javax.swing.JFormattedTextField;
+import javax.swing.text.NumberFormatter;
+
+/**
+ * Provides a more strict input field that only accepts integers
+ */
+public class NumberInputField extends JFormattedTextField{
+
+	/**
+	 * SerialVersionUID
+	 */
+	private static final long serialVersionUID = -1144461027491991050L;
+	
+	
+	public NumberInputField() {
+		super(FormatHelper.getIntegerFormatter());
+	}
+
+}
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/TimeLimitSetter.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/TimeLimitSetter.java
new file mode 100644
index 0000000000000000000000000000000000000000..7bb6cb51abe7cf825388694d20df59e019f404f1
--- /dev/null
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/TimeLimitSetter.java
@@ -0,0 +1,45 @@
+package de.hhu.ba.yoshikoWrapper.gui;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JCheckBox;
+import javax.swing.JPanel;
+
+public class TimeLimitSetter extends JPanel{
+	
+	/**
+	 * Unique UID for serialization
+	 */
+	private static final long serialVersionUID = 6617497954814566334L;
+	
+	private JCheckBox checkBox;
+	private NumberInputField numberField;
+	
+	public TimeLimitSetter() {
+		checkBox = new JCheckBox();
+		numberField = new NumberInputField();
+		numberField.setEnabled(false); //By default time limit is turned off
+		checkBox.addActionListener(
+				new ActionListener() {
+
+					@Override
+					public void actionPerformed(ActionEvent e) {
+						numberField.setEnabled(checkBox.isSelected());
+					}
+					
+				}
+				);
+		//REGISTER COMPONENTS
+		this.add(checkBox);
+		this.add(numberField);
+	}
+	
+	public int getTimeLimit() {
+		if (checkBox.isSelected()) {
+			return -1;
+		}
+		return (int)numberField.getValue();
+	}
+
+}
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/swig/LibraryInterface.java b/src/main/java/de/hhu/ba/yoshikoWrapper/swig/LibraryInterface.java
index d06fa117058f6f3a77d8efe6fc2c5a60ac8f4d8b..e87817e26c40e022a279327dd52f622d1a80a1b0 100644
--- a/src/main/java/de/hhu/ba/yoshikoWrapper/swig/LibraryInterface.java
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/swig/LibraryInterface.java
@@ -114,4 +114,8 @@ public class LibraryInterface {
     return (cPtr == 0) ? null : new SWIGTYPE_p_ysk__ClusterEditingSolutions(cPtr, false);
   }
 
+  public static void setTimeLimit(int limit) {
+    LibraryInterfaceJNI.setTimeLimit(limit);
+  }
+
 }
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/swig/LibraryInterfaceJNI.java b/src/main/java/de/hhu/ba/yoshikoWrapper/swig/LibraryInterfaceJNI.java
index aa4947232797e9d8e07c75d64c8ce327053bf850..2ed424470bdf7d750edba86d06739cc5bbb82178 100644
--- a/src/main/java/de/hhu/ba/yoshikoWrapper/swig/LibraryInterfaceJNI.java
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/swig/LibraryInterfaceJNI.java
@@ -34,4 +34,5 @@ public class LibraryInterfaceJNI {
   public final static native void LibraryInput_addEdge__SWIG_1(long jarg1, long jarg2, long jarg3, double jarg4, boolean jarg5, boolean jarg6);
   public final static native String getVersionString();
   public final static native long processLibraryInput(long jarg1);
+  public final static native void setTimeLimit(int jarg1);
 }