Visualizzazione dei risultati da 1 a 3 su 3

Discussione: FireEvent

  1. #1

    FireEvent

    Salve nel seguente codice non riesco a capire il funzionamento del fireevent. il System.out stampa in qualunque caso se sono nel bottone 1 o nel bottone 2.
    codice:
    package keyboardevent1;
    
    import javafx.application.Application;
    import static javafx.application.Application.launch;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.input.KeyCode;
    import javafx.scene.input.KeyEvent;
    import javafx.scene.layout.TilePane;
    import javafx.stage.Stage;
    
    public class KeyBoardEvent1 extends Application {
    int counter=0;
        public void start(Stage stage) {
        TilePane box=new TilePane();
        box.setHgap(50);
        final Button b1=new Button("Uno");
        final Button b2=new Button("Ciao");
        box.getChildren().addAll(b1,b2);
        EventHandler<KeyEvent> keyEventHandler =new EventHandler<KeyEvent>() {
            public void handle(KeyEvent keyEvent) {
                if (keyEvent.getCode() == KeyCode.U) {
                    //b2.fireEvent(new ActionEvent()); // A COSA SERVE?
                    System.out.println(keyEvent.getSource()+" => "+keyEvent.getTarget());
                }
            }
        };
        Scene scene = new Scene(box, 400, 300);
        stage.addEventHandler(KeyEvent.KEY_PRESSED, keyEventHandler);
        stage.setTitle("My JavaFX Application");
        stage.setScene(scene);
        stage.show();
    }
    
        public static void main(String[] args) {
            launch(args);
        }
        
    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da JavaAddicted Visualizza il messaggio
    Salve nel seguente codice non riesco a capire il funzionamento del fireevent. il System.out stampa in qualunque caso se sono nel bottone 1 o nel bottone 2.
    Conosco ben poco JavaFX ma mi viene da pensare che siccome il EventHandler l'hai registrato sullo stage, il handle viene invocato e quindi gestisce il tasto "u" indipendentemente dal fatto che il focus sia su b1 o b2. Insomma è generale.

    Poi fireEvent serve ovviamente a fare il "fire" di un evento. A cosa serve a te .... non lo so, dipende. Se vuoi che il pulsante che ha il focus si "clicchi" quando premi "u", allora innanzitutto nota che Button ha un semplice fire() (è ben descritto nel javadoc), poi comunque credo che basti usare il componente "source" dell'evento (se è come succede in Swing).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Conosco ben poco JavaFX ma mi viene da pensare che siccome il EventHandler l'hai registrato sullo stage, il handle viene invocato e quindi gestisce il tasto "u" indipendentemente dal fatto che il focus sia su b1 o b2. Insomma è generale.

    Poi fireEvent serve ovviamente a fare il "fire" di un evento. A cosa serve a te .... non lo so, dipende. Se vuoi che il pulsante che ha il focus si "clicchi" quando premi "u", allora innanzitutto nota che Button ha un semplice fire() (è ben descritto nel javadoc), poi comunque credo che basti usare il componente "source" dell'evento (se è come succede in Swing).
    Ok grazie, lo sto affrontando durante il corso di java e non capivo bene a cosa servisse, anche perchè anche se collego eventhandler al bottone non cambia niente, se tolgo il fire il codice funziona lo stesso e l'output è quello che mi aspetto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.