diff --git a/lib/lanterna-3.1.3.jar b/lib/lanterna-3.1.3.jar new file mode 100644 index 0000000..d95d2fd Binary files /dev/null and b/lib/lanterna-3.1.3.jar differ diff --git a/src/gradeanalyzer/GradeAnalyzer.java b/src/gradeanalyzer/GradeAnalyzer.java index febf4d4..1645759 100644 --- a/src/gradeanalyzer/GradeAnalyzer.java +++ b/src/gradeanalyzer/GradeAnalyzer.java @@ -12,9 +12,26 @@ import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; -import java.util.InputMismatchException; import java.util.Scanner; +import com.googlecode.lanterna.TerminalPosition; +import com.googlecode.lanterna.gui2.BasicWindow; +import com.googlecode.lanterna.gui2.Button; +import com.googlecode.lanterna.gui2.Direction; +import com.googlecode.lanterna.gui2.EmptySpace; +import com.googlecode.lanterna.gui2.Label; +import com.googlecode.lanterna.gui2.LinearLayout; +import com.googlecode.lanterna.gui2.MultiWindowTextGUI; +import com.googlecode.lanterna.gui2.Panel; +import com.googlecode.lanterna.gui2.Window; +import com.googlecode.lanterna.gui2.WindowBasedTextGUI; +import com.googlecode.lanterna.gui2.menu.MenuBar; +import com.googlecode.lanterna.gui2.menu.MenuItem; +import com.googlecode.lanterna.gui2.menu.Menu; +import com.googlecode.lanterna.screen.Screen; +import com.googlecode.lanterna.screen.TerminalScreen; +import com.googlecode.lanterna.terminal.DefaultTerminalFactory; + /** * * @author Verde @@ -33,9 +50,10 @@ public class GradeAnalyzer { static boolean isSaved = true; static boolean isEmpty = true; + /* public static void main(String[] args) { int scelta = -1; - + do { System.out.println("Scegliere un'opzione:"); System.out.println("1. Inserisci dati alunno"); @@ -43,11 +61,11 @@ public class GradeAnalyzer { System.out.println("3. Promossi"); System.out.println("0. Esci"); System.out.print("Opzione: "); - + try { scelta = sc.nextInt(); sc.nextLine(); - + switch (scelta) { case 0: break; @@ -98,7 +116,67 @@ public class GradeAnalyzer { } } while (scelta != 0); } + */ + public static void main(String[] args) { + try (Screen schermo = new TerminalScreen(new DefaultTerminalFactory().createTerminal())) { + schermo.startScreen(); //crea terminale, inserisci CRT e dai corrente + + final WindowBasedTextGUI gui = new MultiWindowTextGUI(schermo); //crea interfaccia con le finestre + + final Window principale = new BasicWindow("Selezionare una delle seguenti opzioni:"); + ArrayList windowHints = new ArrayList<>(); + windowHints.add(Window.Hint.CENTERED); + principale.setHints(windowHints); + + Panel contenutoFinestra = new Panel(new LinearLayout(Direction.VERTICAL)); + + contenutoFinestra.addComponent(new MenuItem("Inserisci dati alunno", () -> + openWindow(gui, "Inserisci dati alunno", "Questa è la finestra.") + )); + contenutoFinestra.addComponent(new MenuItem("Trova voto più alto e più basso", () -> + openWindow(gui, "Trova voto più alto e più basso", "Questa è la finestra.") + )); + contenutoFinestra.addComponent(new MenuItem("Promossi", () -> + openWindow(gui, "Promossi", "Questa è la finestra.") + )); + contenutoFinestra.addComponent(new Button("Esci", () -> System.exit(0))); + + principale.setComponent(contenutoFinestra); + + + + // Contenuto della finestra principale + //contenutoFinestra.addComponent(new EmptySpace()); // Margine + + principale.setComponent(contenutoFinestra); + + + gui.addWindowAndWait(principale); + + } + catch (IOException e) { + System.out.println("Qualcosa è andato storto nella creazione dell'interfaccia."); + System.out.println(e.getMessage()); + e.printStackTrace(); + } + } + + + + + // ======== FINESTRE SECONDARIE ======== + private static void openWindow(WindowBasedTextGUI gui, String title, String text) { + BasicWindow window = new BasicWindow(title); + + Panel panel = new Panel(new LinearLayout(Direction.VERTICAL)); + panel.addComponent(new Label(text)); + panel.addComponent(new Button("Chiudi", window::close)); + + window.setComponent(panel); + + gui.addWindow(window); + } public static void pausa() { System.out.println("Premere un tasto per continuare. . ."); sc.nextLine();