From 7167b4341ef290d56fb96e2af10883a4b925d83b Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Thu, 26 Mar 2026 19:27:18 +0100 Subject: I found my old code! --- .../v2.2/src/RobottinoUtils/Grafica.java | 60 +++++++++++++++++++++ .../v2.2/src/RobottinoUtils/Listener.java | 62 ++++++++++++++++++++++ .../v2.2/src/RobottinoUtils/PartiDelRobot.java | 22 ++++++++ 3 files changed, 144 insertions(+) create mode 100755 robottino/all_versions/v2.2/src/RobottinoUtils/Grafica.java create mode 100755 robottino/all_versions/v2.2/src/RobottinoUtils/Listener.java create mode 100755 robottino/all_versions/v2.2/src/RobottinoUtils/PartiDelRobot.java (limited to 'robottino/all_versions/v2.2/src/RobottinoUtils') diff --git a/robottino/all_versions/v2.2/src/RobottinoUtils/Grafica.java b/robottino/all_versions/v2.2/src/RobottinoUtils/Grafica.java new file mode 100755 index 0000000..25574a3 --- /dev/null +++ b/robottino/all_versions/v2.2/src/RobottinoUtils/Grafica.java @@ -0,0 +1,60 @@ +// Dichiaro che questa classa farà parte del package RobottinoUtils, che verrà poi importato dalla classe Robottino. +package RobottinoUtils; + +// Importo i package standard relativi al funzionamento delle finestre e della grafica in generale. +import java.awt.*; + +// E i package RobottinoAzioni e RobottinoUtils da me definiti. +import RobottinoAzioni.*; +import RobottinoUtils.Listener; + +// La classe è una sottoclasse di Frame per poter sfruttare gli effetti grafici +// ma implementa anche l'interfaccia WindowListener, necessaria per gestire gli eventi collegati alle finestre +// (riduzione a icona, chiusura...); per questo devo successivamente ridefinire tutti i +// metodi dell'interfaccia. +public class Grafica extends Frame { + + // Creo un'istanza della classe Listener che userò come listener per gli eventi. + public static Listener listener; + + // Il costruttore senza argomenti. + public Grafica () { + + // Il metodo "setBounds" posiziona e dimensiona la finestra. + setBounds (this.orizzontale, this.verticale, this.larghezza, this.altezza); + + // "setTitle" per il titolo della finestra. + setTitle ("Robottino v2.2"); + + // "setVisible" per poterla visualizzare. + setVisible (true); + + // E addWindowListener per l'ascoltatore (listener). + listener = new Listener(); + addWindowListener (listener); + } + + // Questo costruttore permette di modificare la posizione o la dimensione della finestra + // rispetto al predefinito. + public Grafica (int orizzontale, int verticale, int larghezza, int altezza) { + this.orizzontale =orizzontale; + this.verticale = verticale; + this.larghezza = larghezza; + this.altezza = altezza; + setBounds (this.orizzontale, this.verticale, this.larghezza, this.altezza); + setTitle ("Robottino v2.2"); + setVisible (true); + listener = new Listener(); + addWindowListener (listener); + } + + // Le variabili pubbliche di classe per il metodo "setBounds". + public int orizzontale = 0; + public int verticale = 0; + public int larghezza = 500; + public int altezza = 500; +} + + + + diff --git a/robottino/all_versions/v2.2/src/RobottinoUtils/Listener.java b/robottino/all_versions/v2.2/src/RobottinoUtils/Listener.java new file mode 100755 index 0000000..7ff51d6 --- /dev/null +++ b/robottino/all_versions/v2.2/src/RobottinoUtils/Listener.java @@ -0,0 +1,62 @@ +// Questa classe è il listener per gli eventi relativi alle finestre. +// Dichiaro che farà parte del package RobottinoUtils +package RobottinoUtils; + +// Importo i package necessari. +import java.awt.event.*; +import RobottinoMain.*; + +public class Listener implements WindowListener { + + // Ridefinisco i metodi dell'interfaccia WindowListener: + // Metodo invocato quando la finestra è stata chiusa: + public void windowClosed (WindowEvent evt) { + + // Invoco il metodo sleep(int millisecondi) per mettere il programma in uno stato di attesa + // di durata pari ai millisecondi indicati come argomento. + System.out.println("La finestra è stata chiusa, il programma terminarà fra 3 secondi"); + try { + Robottino.threadMain.sleep(1000); + } catch (Exception e) { e.printStackTrace(); } + System.out.println("2"); + try { + Robottino.threadMain.sleep(1000); + } catch (Exception e) { e.printStackTrace(); } + System.out.println("1"); + try { + Robottino.threadMain.sleep(1000); + } catch (Exception e) { e.printStackTrace(); } + System.out.println("Programma terminato"); + System.exit(0); + } + + // Metodo invocato quando la finestra è in fase di chiusura: + public void windowClosing (WindowEvent evt) { + System.out.println ("Chiusura finestra in corso"); + evt.getWindow().dispose(); + } + + // Metodo invocato quando una finestra viene ridotta a icona: + public void windowIconified (WindowEvent evt) { + System.out.println("La finestra è stata ridotta a icona"); + } + + // Metodo invocato quando una finestra ridotta a icona viene ingrandita: + public void windowDeiconified (WindowEvent evt) { + System.out.println("La finestra ridotta a icona è stata ingrandita"); + } + + // Metodo invocato quando una finestra viene aperta: + public void windowOpened (WindowEvent evt) {} + + // Metodo invocato quando una finestra diventa attiva: + public void windowActivated (WindowEvent evt) {} + + // Metodo invocato quando una finestra viene disattivata: + public void windowDeactivated (WindowEvent evt) {} +} + + + + + diff --git a/robottino/all_versions/v2.2/src/RobottinoUtils/PartiDelRobot.java b/robottino/all_versions/v2.2/src/RobottinoUtils/PartiDelRobot.java new file mode 100755 index 0000000..d6cf869 --- /dev/null +++ b/robottino/all_versions/v2.2/src/RobottinoUtils/PartiDelRobot.java @@ -0,0 +1,22 @@ +// Dichiaro che questa classa farà parte del package RobottinoUtils, che verrà poi importato dalla classe Robottino. +package RobottinoUtils; + +// Dichiaro la classe. +public class PartiDelRobot { + + // Creo un costruttore senza argomenti. + // Se non lo facessi sarei obbligato a passare gli argomenti + // del secondo costruttore ogni volta che voglio istanziare la classe. + public PartiDelRobot() {} + + // Il secondo costruttore riceve come argomenti un booleano che passerà il valore a "statoParte" + // e una stringa che passa il valore a "stringaParte". + public PartiDelRobot(boolean b, String s) { + this.stringaParte = s; + this.statoParte = b; + } + + // Infine le due variabili pubbliche della classe. + public String stringaParte; + public boolean statoParte; +} -- cgit v1.3