Creare un menu console in Java con JLine
JLine è una libreria per Java per la creazione di un menu console.
Ha diverse opzioni e non è difficile da usare.
In questo articolo vediamo un esempio basico.
Se usate Maven potete installarla aggiungendo questa dipendenza:
<dependency>
<groupId>org.jline</groupId>
<artifactId>jline</artifactId>
<version>3.3.1</version>
</dependency>
Qui sotto un pò di codice:
package com.test;
import org.jline.reader.*;
import org.jline.reader.impl.DefaultParser;
import org.jline.reader.impl.completer.StringsCompleter;
import org.jline.reader.impl.history.DefaultHistory;
import org.jline.terminal.Terminal;
import org.jline.terminal.TerminalBuilder;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
try (Terminal terminal = TerminalBuilder.builder().system(true).build()) {
Completer completer = new StringsCompleter("help", "hello", "exit");
LineReader reader = LineReaderBuilder.builder()
.terminal(terminal)
.parser(new DefaultParser())
.completer(completer)
.history(new DefaultHistory())
.build();
terminal.writer().println("Test di JLine!");
terminal.writer().println("Scrivi 'help' per visualizzare i comandi disponibili.");
terminal.writer().println("");
while (true) {
String line;
try {
line = reader.readLine("Scrivi comando> ");
} catch (UserInterruptException | EndOfFileException e) {
break;
}
if (line == null) {
continue;
}
line = line.trim();
switch (line) {
case "help":
terminal.writer().println("Comandi: help, print, exit");
break;
case "print":
terminal.writer().println("Ciao da JLine!");
break;
case "exit":
terminal.writer().println("Uscita...");
return;
default:
terminal.writer().println("Comando inesistente: " + line);
}
terminal.flush();
}
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
Enjoy!
java maven jline
Commentami!