From 19c50136b6bb767d93d2d1a5e2440355dee2af76 Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Wed, 3 Dec 2025 21:42:16 +0100 Subject: [PATCH] Finestra principale funzionante --- src/gradeanalyzer/FinestraPrincipale.java | 55 ++++++++++++++++++++++- src/gradeanalyzer/GradeAnalyzer.java | 44 +----------------- 2 files changed, 56 insertions(+), 43 deletions(-) diff --git a/src/gradeanalyzer/FinestraPrincipale.java b/src/gradeanalyzer/FinestraPrincipale.java index c717c67..d921a94 100644 --- a/src/gradeanalyzer/FinestraPrincipale.java +++ b/src/gradeanalyzer/FinestraPrincipale.java @@ -4,10 +4,63 @@ */ package gradeanalyzer; +import java.util.ArrayList; + +import com.googlecode.lanterna.gui2.BasicWindow; +import com.googlecode.lanterna.gui2.Button; +import com.googlecode.lanterna.gui2.Direction; +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.MenuItem; + /** * * @author Verde */ -public class FinestraPrincipale { +public class FinestraPrincipale extends BasicWindow{ + public FinestraPrincipale(WindowBasedTextGUI gui) { + super("Selezionare una delle seguenti opzioni:"); + ArrayList windowHints = new ArrayList<>(); + windowHints.add(Window.Hint.CENTERED); + this.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))); + + this.setComponent(contenutoFinestra); + + + + // Contenuto della finestra principale + //contenutoFinestra.addComponent(new EmptySpace()); // Margine + + this.setComponent(contenutoFinestra); + } + + 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); + } } \ No newline at end of file diff --git a/src/gradeanalyzer/GradeAnalyzer.java b/src/gradeanalyzer/GradeAnalyzer.java index 1645759..9585b97 100644 --- a/src/gradeanalyzer/GradeAnalyzer.java +++ b/src/gradeanalyzer/GradeAnalyzer.java @@ -121,38 +121,9 @@ public class GradeAnalyzer { 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); + gui.addWindowAndWait(new FinestraPrincipale(gui)); } catch (IOException e) { @@ -165,18 +136,7 @@ public class GradeAnalyzer { - // ======== 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();