Questo capitolo contiene il programma che saluta l'utente, facendo click su un elemento della finestra nel listato sottostante verranno evidenziate le parti che lo riguardano (click nello spazio sotto al nome per selezionare il pannello che contiene tutto e sul titolo per selezionare la finestra).
Un saluto personalizzato
nome: | Nome o nomignolo |
Premi qui | |
Sono impaziente |
// Il pacchetto, cioè la cartella in cui viene inserito questo file
package esercizi;
// l'elenco degli oggetti (con la loro posizione all'interno dei pacchetti
// standard di java) che vengono usati in questa classe
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.control.Label;
import javafx.stage.Stage;
/****************************************************************************
* Definizione dell'oggetto
***************************************************************************/
public class HelloNome extends Application {
// lo spazio in cui inserire il messaggio di risposta
Label messaggio = new Label("Sono impaziente...");
// la casella di testo in cui l'utente dovrà inserire il nome
TextField nome = new TextField();
@Override
public void start(Stage primaryStage) {
// la variabili che diachiaro qui vengono usate soltanto dentro
// il metodo start()
// l'etichetta che comparirà alla sinistra della casella di testo,
// è un testo non modificabile dall'utente, e
// imposto direttamente nel costruttore il messagio che dovrà comparire
Label mettiNome = new Label("Nome:");
// il pulsante da premere, contestualmente alla creazione imposto anche il testo del pulsante
Button eseguiSaluto = new Button("Premi qui");
// il testo di aiuto relativo alla casella che conterrà nome e cognome
nome.setPromptText("Nome o nomignolo per salutarti");
// collego una azione alla pressione del pulsante
eseguiSaluto.setOnAction(e -> saluta() );
// creo un nuovo pannello organizzato come una griglia e la chiamo griglia
GridPane griglia = new GridPane();
// inserisco i singoli oggetti nella griglia
// inserisco mettiNome in griglia impostando anche i vincoli (coordinate)
griglia.add(mettiNome, 0, 0);
// inserisco nome in griglia impostando anche i vincoli (coordinate)
griglia.add(nome, 1, 0);
// inserisco eseguiSaluto in griglia impostando anche i vincoli (coordinate)
griglia.add(eseguiSaluto, 1, 1);
// inserisco messaggio in griglia impostando anche i vincoli (coordinate)
griglia.add(messaggio, 1, 2);
// creo una nuova Scene grande 500 punti in orizzontale e 250 in verticale che contiene griglia
Scene scene = new Scene(griglia, 500, 250);
// imposto il titolo della finestra
primaryStage.setTitle("Un saluto personalizzato");
// imposto la scena principale della finestra
primaryStage.setScene(scene);
// mostro la finestra sullo schermo
primaryStage.show();
}
// serve per far partire questo programma
public static void main(String[] args) {
launch(args);
}
/************************************************************************
* Questo metodo legge il nome dalla casella di testo (TextField)
* e scrive il saluto nel campo di testo (Label)
***********************************************************************/
public void saluta() {
// dichiaro una variabile che conterrà il nome dell'utente
String utente;
// leggo il nome dell'utente dalla casella di testo
// e lo scrivo nella variabile "utente"
utente = nome.getText();
// scrivo un messaggio dentro l'etichetta di testo chiamata "messaggio"
messaggio.setText("Signor " + utente + " le auguro buona giornata.");
}
}