first commit

This commit is contained in:
abazatte 2022-01-20 08:51:39 +01:00
parent 04adeb152c
commit 386560346b
8 changed files with 140 additions and 0 deletions

8
.idea/.gitignore generated vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

6
.idea/misc.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_15" default="true" project-jdk-name="15" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Test.iml" filepath="$PROJECT_DIR$/Test.iml" />
</modules>
</component>
</project>

11
Test.iml Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

Binary file not shown.

Binary file not shown.

28
src/Main.java Normal file
View File

@ -0,0 +1,28 @@
public class Main {
public Main(String[] args) {
Menue menue = new Menue();
menue.putMethode("a", Main::addieren, "addiert zwei Zahlen");
help(args);
menue.replaceHelp(Main::help);
menue.exitMessage("Bis zum nächsten mal!");
menue.putCommands();
}
private static void help(String[] args) {
System.out.println("Functions: ");
System.out.println(" (a) Addieren von zwei Werten");
System.out.println(" (h) Hilfe. ");
System.out.println(" (e) Exit. ");
}
private static void addieren(String[] strings) {
int a = 2 + 3;
System.out.println("2 + 3 = " + a);
}
public static void main(String[] args) {
new Main(args);
}
}

79
src/Menue.java Normal file
View File

@ -0,0 +1,79 @@
import java.util.HashMap;
import java.util.Scanner;
import java.util.function.Consumer;
/**
* This Class is a simple text menu where you can put your methode.
*/
public class Menue {
//one HashMap is for Commands, the other is for the description.
private final HashMap<String, Consumer<String[]>> commands;
private final HashMap<String, String> description;
private String exitMsg = "";
private boolean exitMsgSet = false;
//default Constructor initialize both HashMaps and puts help and exit commands.
public Menue() {
commands = new HashMap<>();
description = new HashMap<>();
description.put("h", "help");
description.put("e", "exit");
commands.put("h", this::help);
commands.put("e", this::exit);
}
//while true loop for input (must be at the end of your code)
public void putCommands() {
while (true) {
input();
System.out.println();
}
}
//input Methode (used by only the class)
private void input() {
Scanner scan = new Scanner(System.in);
System.out.print("$ ");
String line = scan.nextLine();
System.out.println("Input: " + line);
String[] args = new String[0];
if (commands.get(line) != null) {
commands.get(line).accept(args);
} else {
System.err.println("INVALID INPUT");
}
}
//default help methode
public void help(String[] args) {
System.out.println("default help, for better feeling implement the Methode. ");
System.out.println("Commands: " + description);
}
//set exitMessage if u want
public void exitMessage(String txt){
exitMsg = txt;
exitMsgSet = true;
}
//exit methode
public void exit(String[] args) {
if (exitMsgSet){
System.out.println(exitMsg);
}
System.exit(0);
}
//for replacing the scuffed help Methode
public void replaceHelp(Consumer<String[]> stringA) {
commands.replace("h", stringA);
}
//Methode for putting your methode in the Menu
public void putMethode(String string, Consumer<String[]> stringA, String text) {
commands.put(string, stringA);
description.put(string, text);
}
}