salutaInterattivo

evidenziazione del codice in base all'elemento dell'interfaccia

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."); 
    }
    
}