javafx
Botón
Buscar..
Añadiendo un oyente de acción
Los botones activan los eventos de acción cuando se activan (p. Ej., Se hace clic en una combinación de teclas para el botón, ...).
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello World!");
}
});
Si está utilizando Java 8+, puede usar lambdas para escuchas de acción.
button.setOnAction((ActionEvent a) -> System.out.println("Hello, World!"));
// or
button.setOnAction(a -> System.out.println("Hello, World!"));
Añadiendo un gráfico a un botón.
Los botones pueden tener un gráfico. graphic puede ser cualquier nodo JavaFX, como un ProgressBar
button.setGraphic(new ProgressBar(-1));
Un ImageView
button.setGraphic(new ImageView("images/icon.png"));
O incluso otro botón
button.setGraphic(new Button("Nested button"));
Crear un botón
La creación de un Button es simple:
Button sampleButton = new Button();
Esto creará un nuevo Button sin ningún texto o gráfico dentro.
Si desea crear un Button con un texto, simplemente use el constructor que toma una String como parámetro (que establece la textProperty de texto del Button ):
Button sampleButton = new Button("Click Me!");
Si desea crear un Button con un gráfico en el interior o en cualquier otro Node , use este constructor:
Button sampleButton = new Button("I have an icon", new ImageView(new Image("icon.png")));
Predeterminado y botones de cancelación
Button API de Button proporciona una manera fácil de asignar atajos de teclado comunes a los botones sin la necesidad de acceder a la lista de aceleradores asignados a la Scene o escuchar explícitamente los eventos clave. A saber, se proporcionan dos métodos de conveniencia: setDefaultButton y setCancelButton :
Si configura
setDefaultButtonentrue, elButtonseKeyCode.ENTERcada vez que reciba un eventoKeyCode.ENTER.Establecer
setCancelButtonentruehará que elButtondispare cada vez que reciba un eventoKeyCode.ESCAPE.
El siguiente ejemplo crea una Scene con dos botones que se activan cuando se presionan las teclas de entrada o de escape, independientemente de si están enfocadas o no.
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);
El código anterior no funcionará si estas KeyEvents son consumidos por cualquier padre Node :
scene.setOnKeyPressed(e -> {
e.consume();
});