Finestra principale funzionante

This commit is contained in:
La Programmatrice Verde
2025-12-03 21:42:16 +01:00
parent 5f0630eca1
commit 19c50136b6
2 changed files with 56 additions and 43 deletions

View File

@@ -4,10 +4,63 @@
*/ */
package gradeanalyzer; 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 * @author Verde
*/ */
public class FinestraPrincipale { public class FinestraPrincipale extends BasicWindow{
public FinestraPrincipale(WindowBasedTextGUI gui) {
super("Selezionare una delle seguenti opzioni:");
ArrayList<Window.Hint> 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);
}
} }

View File

@@ -121,38 +121,9 @@ public class GradeAnalyzer {
public static void main(String[] args) { public static void main(String[] args) {
try (Screen schermo = new TerminalScreen(new DefaultTerminalFactory().createTerminal())) { try (Screen schermo = new TerminalScreen(new DefaultTerminalFactory().createTerminal())) {
schermo.startScreen(); //crea terminale, inserisci CRT e dai corrente schermo.startScreen(); //crea terminale, inserisci CRT e dai corrente
final WindowBasedTextGUI gui = new MultiWindowTextGUI(schermo); //crea interfaccia con le finestre final WindowBasedTextGUI gui = new MultiWindowTextGUI(schermo); //crea interfaccia con le finestre
final Window principale = new BasicWindow("Selezionare una delle seguenti opzioni:"); gui.addWindowAndWait(new FinestraPrincipale(gui));
ArrayList<Window.Hint> 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) { 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() { public static void pausa() {
System.out.println("Premere un tasto per continuare. . ."); System.out.println("Premere un tasto per continuare. . .");
sc.nextLine(); sc.nextLine();