javafx
Pulsante
Ricerca…
Aggiunta di un listener di azioni
I pulsanti attivano gli eventi di azione quando vengono attivati (ad es. Si fa clic, una combinazione di tasti per il pulsante viene premuto, ...).
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello World!");
}
});
Se si utilizza Java 8+, è possibile utilizzare lambdas per i listener di azioni.
button.setOnAction((ActionEvent a) -> System.out.println("Hello, World!"));
// or
button.setOnAction(a -> System.out.println("Hello, World!"));
Aggiunta di un elemento grafico a un pulsante
I pulsanti possono avere un grafico. graphic può essere qualsiasi nodo JavaFX, come un ProgressBar
button.setGraphic(new ProgressBar(-1));
Un ImageView
button.setGraphic(new ImageView("images/icon.png"));
O anche un altro pulsante
button.setGraphic(new Button("Nested button"));
Crea un pulsante
La creazione di un Button è semplice:
Button sampleButton = new Button();
Questo creerà un nuovo Button senza testo o grafica all'interno.
Se vuoi creare un Button con un testo, usa semplicemente il costruttore che accetta un parametro String come parametro (che imposta la proprietà textProperty del Button ):
Button sampleButton = new Button("Click Me!");
Se si desidera creare un Button con un elemento grafico all'interno o qualsiasi altro Node , utilizzare questo costruttore:
Button sampleButton = new Button("I have an icon", new ImageView(new Image("icon.png")));
Pulsanti predefiniti e Annulla
Button API Button offre un modo semplice per assegnare scorciatoie da tastiera comuni ai pulsanti senza la necessità di accedere all'elenco degli acceleratori assegnato a Scene o di ascoltare esplicitamente gli eventi dei tasti. Vale a dire, sono disponibili due metodi di convenienza: setDefaultButton e setCancelButton :
L'impostazione di
setDefaultButtonsutruefarà sì che ilButtonsiKeyCode.ENTERogni volta che riceve un eventoKeyCode.ENTER.Se si
setCancelButtonsutrue, ilButtonvieneKeyCode.ESCAPEogni volta che riceve un eventoKeyCode.ESCAPE.
L'esempio seguente crea una Scene con due pulsanti che vengono attivati quando vengono premuti i tasti di invio o di escape, indipendentemente dal fatto che siano focalizzati o meno.
FlowPane root = new FlowPane();
Button okButton = new Button("OK");
okButton.setDefaultButton(true);
okButton.setOnAction(e -> {
System.out.println("OK clicked.");
});
Button cancelButton = new Button("Cancel");
cancelButton.setCancelButton(true);
cancelButton.setOnAction(e -> {
System.out.println("Cancel clicked.");
});
root.getChildren().addAll(okButton, cancelButton);
Scene scene = new Scene(root);
Il codice sopra non funzionerà se questi KeyEvents sono consumati da qualsiasi Node genitore:
scene.setOnKeyPressed(e -> {
e.consume();
});