Prova finestra principale

This commit is contained in:
La Programmatrice Verde
2025-12-03 21:35:11 +01:00
parent 9719ac92fb
commit 9dae96b911
2 changed files with 82 additions and 4 deletions

BIN
lib/lanterna-3.1.3.jar Normal file

Binary file not shown.

View File

@@ -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,6 +50,7 @@ public class GradeAnalyzer {
static boolean isSaved = true;
static boolean isEmpty = true;
/*
public static void main(String[] args) {
int scelta = -1;
@@ -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<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) {
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();