La clase Button es parte del paquete JavaFX y puede tener un texto, un gráfico o ambos.
El botón en JavaFX puede ser de tres tipos diferentes:
- Botón normal: un botón pulsador normal
- Botón predeterminado: un botón predeterminado que recibe una pulsación VK_ENTER del teclado
- Botón de cancelación: un botón de cancelación que recibe una pulsación VK_ENTER del teclado
Cuando se presiona el botón, se envía un evento de acción. Este Evento de Acción puede ser administrado por un EventHandler. Los botones también pueden responder a los eventos del mouse implementando un EventHandler para procesar el MouseEvent.
Los constructores de la clase Button son :
- Button() : crea un botón con una string vacía para su etiqueta.
- Button(String t) : crea un botón con el texto especificado como su etiqueta.
- Botón (String t, Node g) : crea un botón con el texto y el icono especificados para su etiqueta.
Métodos comúnmente utilizados :
método | explicación |
---|---|
setCancelButton(booleano v) | Establece el valor de la propiedad cancelButton. |
setDefaultButton(booleano v) | Establece el valor de la propiedad defaultButton |
es el botón predeterminado() | Obtiene el valor de la propiedad defaultButton. |
esBotónCancelar() | Obtiene el valor de la propiedad cancelButton. |
Cancelar propiedad del botón() | Un Botón Cancelar es el botón que recibe una pulsación del teclado VK_ESC |
propiedad del botón predeterminado() | Un botón predeterminado es el botón que recibe una pulsación VK_ENTER del teclado |
createDefaultSkin() | Cree una nueva instancia de la máscara predeterminada para este control. |
Los siguientes programas ilustran el uso de Button en JavaFX.
- Programa para crear un botón y agregarlo al escenario: Este programa crea un Botón indicado con el nombre b . El botón se creará dentro de una escena, que a su vez se alojará dentro de un escenario. La función setTitle() se utiliza para proporcionar título al escenario. Luego se crea un panel de mosaicos, en el que se llama al método addChildren() para adjuntar el botón dentro de la escena. Finalmente, se llama al método show() para mostrar los resultados finales.
// Java Program to create a button and add it to the stage
import
javafx.application.Application;
import
javafx.scene.Scene;
import
javafx.scene.control.Button;
import
javafx.scene.layout.StackPane;
import
javafx.stage.Stage;
public
class
button
extends
Application {
// launch the application
public
void
start(Stage s)
{
// set title for the stage
s.setTitle(
"creating buttons"
);
// create a button
Button b =
new
Button(
"button"
);
// create a stack pane
StackPane r =
new
StackPane();
// add button
r.getChildren().add(b);
// create a scene
Scene sc =
new
Scene(r,
200
,
200
);
// set the scene
s.setScene(sc);
s.show();
}
public
static
void
main(String args[])
{
// launch the application
launch(args);
}
}
Salida :
- Programa Java para crear un botón y agregarle un controlador de eventos : Este programa crea un Botón indicado por el nombre b. El botón se creará dentro de una escena, que a su vez se alojará dentro de un escenario. Crearíamos una etiqueta para mostrar si el botón está presionado o no. La función setTitle() se utiliza para proporcionar título al escenario. Luego se crea un panel de mosaico, en el que se llama al método addChildren() para adjuntar el botón y la etiqueta dentro de la escena. Finalmente, se llama al método show() para mostrar los resultados finales. Crearíamos un controlador de eventos para manejar los eventos del botón. El controlador de eventos se agregaría al botón mediante la función setOnAction().
// Java program to create a button and add event handler to it
import
javafx.application.Application;
import
javafx.scene.Scene;
import
javafx.scene.control.Button;
import
javafx.scene.layout.*;
import
javafx.event.ActionEvent;
import
javafx.event.EventHandler;
import
javafx.scene.control.Label;
import
javafx.stage.Stage;
public
class
button_1
extends
Application {
// launch the application
public
void
start(Stage s)
{
// set title for the stage
s.setTitle(
"creating buttons"
);
// create a button
Button b =
new
Button(
"button"
);
// create a stack pane
TilePane r =
new
TilePane();
// create a label
Label l =
new
Label(
"button not selected"
);
// action event
EventHandler<ActionEvent> event =
new
EventHandler<ActionEvent>() {
public
void
handle(ActionEvent e)
{
l.setText(
" button selected "
);
}
};
// when button is pressed
b.setOnAction(event);
// add button
r.getChildren().add(b);
r.getChildren().add(l);
// create a scene
Scene sc =
new
Scene(r,
200
,
200
);
// set the scene
s.setScene(sc);
s.show();
}
public
static
void
main(String args[])
{
// launch the application
launch(args);
}
}
Salida :
- Programa Java para crear un botón con una imagen y agregarle un controlador de eventos: Este programa crea un botón con una imagen indicada con el nombre b. La imagen se incluirá mediante el flujo de entrada de archivos que importa la imagen. luego crearemos una imagen usando el objeto del flujo de entrada del archivo y luego crearemos una vista de imagen usando el archivo de imagen. El botón se creará dentro de una escena, que a su vez se alojará dentro de un escenario. Crearíamos una etiqueta para mostrar si el botón está presionado o no. La función setTitle() se usa para dar título al escenario. Luego se crea un panel de mosaico, en el que se llama al método addChildren() para adjuntar el botón y la etiqueta dentro de la escena. Finalmente, se llama al método show() para mostrar los resultados finales. Crearíamos un controlador de eventos para manejar los eventos del botón. El controlador de eventos se agregaría al botón mediante la función setOnAction().
// Java Program to create a button with a image and
// add event handler to it
import
javafx.application.Application;
import
javafx.scene.Scene;
import
javafx.scene.control.Button;
import
javafx.scene.layout.*;
import
javafx.scene.image.*;
import
java.io.*;
import
javafx.event.ActionEvent;
import
javafx.event.EventHandler;
import
javafx.scene.control.Label;
import
javafx.stage.Stage;
import
java.net.*;
public
class
button_2
extends
Application {
// launch the application
public
void
start(Stage s)
throws
Exception
{
// set title for the stage
s.setTitle(
"creating buttons"
);
// create a input stream
FileInputStream input =
new
FileInputStream(
"f:\\gfg.png"
);
// create a image
Image i =
new
Image(input);
// create a image View
ImageView iw =
new
ImageView(i);
// create a button
Button b =
new
Button(
""
, iw);
// create a stack pane
TilePane r =
new
TilePane();
// create a label
Label l =
new
Label(
"button not selected"
);
// action event
EventHandler<ActionEvent> event =
new
EventHandler<ActionEvent>() {
public
void
handle(ActionEvent e)
{
l.setText(
"button selected "
);
}
};
// when button is pressed
b.setOnAction(event);
// add button
r.getChildren().add(b);
r.getChildren().add(l);
// create a scene
Scene sc =
new
Scene(r,
200
,
200
);
// set the scene
s.setScene(sc);
s.show();
}
public
static
void
main(String args[])
{
// launch the application
launch(args);
}
}
Producción
- Programa Java para crear un botón con una imagen y texto y agregarle un controlador de eventos
Este programa crea un Botón con una imagen y un texto indicado por el nombre b. La imagen se incluirá mediante el flujo de entrada de archivos que importa la imagen. luego crearemos una imagen usando el objeto del flujo de entrada del archivo y luego crearemos una vista de imagen usando el archivo de imagen. El botón se creará dentro de una escena, que a su vez se alojará dentro de un escenario. Crearíamos una etiqueta para mostrar si el botón está presionado o no. La función setTitle() se usa para dar título al escenario. Luego se crea un panel de mosaico, en el que se llama al método addChildren() para adjuntar el botón y la etiqueta dentro de la escena. Finalmente, se llama al método show() para mostrar los resultados finales. Crearíamos un controlador de eventos para manejar los eventos del botón. El controlador de eventos se agregaría al botón mediante la función setOnAction().
// Java Program to create a button with a image
// and text and add event handler to it
import
javafx.application.Application;
import
javafx.scene.Scene;
import
javafx.scene.control.Button;
import
javafx.scene.layout.*;
import
javafx.scene.image.*;
import
java.io.*;
import
javafx.event.ActionEvent;
import
javafx.event.EventHandler;
import
javafx.scene.control.Label;
import
javafx.stage.Stage;
import
java.net.*;
public
class
button_3
extends
Application {
// launch the application
public
void
start(Stage s)
throws
Exception
{
// set title for the stage
s.setTitle(
"creating buttons"
);
// create a input stream
FileInputStream input =
new
FileInputStream(
"f:\\gfg.png"
);
// create a image
Image i =
new
Image(input);
// create a image View
ImageView iw =
new
ImageView(i);
// create a button
Button b =
new
Button(
"Button"
, iw);
// create a stack pane
TilePane r =
new
TilePane();
// create a label
Label l =
new
Label(
"button not selected"
);
// action event
EventHandler<ActionEvent> event =
new
EventHandler<ActionEvent>() {
public
void
handle(ActionEvent e)
{
l.setText(
"button selected "
);
}
};
// when button is pressed
b.setOnAction(event);
// add button
r.getChildren().add(b);
r.getChildren().add(l);
// create a scene
Scene sc =
new
Scene(r,
200
,
200
);
// set the scene
s.setScene(sc);
s.show();
}
public
static
void
main(String args[])
{
// launch the application
launch(args);
}
}
Salida :
- Programa Java para crear un botón predeterminado y un botón de cancelación:Este programa crea un Botón indicado por el nombre b y b1 . El botón b actuará como un botón de cancelación que responderá a la pulsación de tecla de escape del teclado y el botón b1 se comportará como un botón predeterminado que responderá a la pulsación de tecla de entrada del teclado). El botón se creará dentro de una escena, que a su vez se alojará dentro de un escenario. Crearíamos una etiqueta para mostrar qué botón se presiona. La función setTitle() se usa para dar título al escenario. Luego se crea un panel de mosaico, en el que se llama al método addChildren() para adjuntar el botón y la etiqueta dentro de la escena. Finalmente, se llama al método show() para mostrar los resultados finales. Crearíamos un controlador de eventos para manejar los eventos del botón. El controlador de eventos se agregaría al botón mediante la función setOnAction().
// Java program to create a default button and a
// cancel button and add event handler to it
import
javafx.application.Application;
import
javafx.scene.Scene;
import
javafx.scene.control.Button;
import
javafx.scene.layout.*;
import
javafx.event.ActionEvent;
import
javafx.event.EventHandler;
import
javafx.scene.control.Label;
import
javafx.stage.Stage;
public
class
button_4
extends
Application {
// launch the application
public
void
start(Stage s)
{
// set title for the stage
s.setTitle(
"creating buttons"
);
// create a button
Button b =
new
Button(
"cancel button"
);
// set cancel button
b.setCancelButton(
true
);
// create a button
Button b1 =
new
Button(
"default button"
);
// set default button
b1.setDefaultButton(
true
);
// create a stack pane
TilePane r =
new
TilePane();
// create a label
Label l =
new
Label(
"button not selected"
);
// action event
EventHandler<ActionEvent> event =
new
EventHandler<ActionEvent>() {
public
void
handle(ActionEvent e)
{
l.setText(
" cancel button selected "
);
}
};
EventHandler<ActionEvent> event1 =
new
EventHandler<ActionEvent>() {
public
void
handle(ActionEvent e)
{
l.setText(
" default button selected "
);
}
};
// when button is pressed
b.setOnAction(event);
b1.setOnAction(event1);
// add button
r.getChildren().add(b);
r.getChildren().add(b1);
r.getChildren().add(l);
// create a scene
Scene sc =
new
Scene(r,
200
,
200
);
// set the scene
s.setScene(sc);
s.show();
}
public
static
void
main(String args[])
{
// launch the application
launch(args);
}
}
Salida :
Nota: Es posible que los programas anteriores no se ejecuten en un IDE en línea; use un compilador fuera de línea.
Referencia : https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/Button.html
Publicación traducida automáticamente
Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA