Validar número con JavaFX
Ejemplo: Validar un número usando JavaFX
JavFXvalidarInteger.java
import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.layout.VBox; import javafx.stage.Stage; /** * José Javier Bermúdez Hernández * * Validar JavaFX TextField como Integer */ public class JavaFXvalidarInteger extends Application { @Override public void start(Stage primaryStage) { // Crear etiqueta para escribir lo qeu se pide al usuario Label etiInfo = new Label(); etiInfo.setText("Introduzca un número entero:"); // Crear campo de texto donde se espera que se escriba el número TextField textIn = new TextField(); // Crear etiqueta donde el programa escribirá el resultado Label etiRespuesta = new Label(); // Crear botón de aceptar Button boton = new Button("Aceptar"); boton.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent e) { // Convertir el texto en Integer, sin salta la excepción será porque // el usuario no introdujo un entero. try { Integer i = Integer.parseInt(textIn.getText()); etiRespuesta.setText("Correcto: " + i); } catch (NumberFormatException excep) { etiRespuesta.setText("¡No es un entero!"); } } }); /* // Crear manejador de evento para el botón (empleamos notación lambda) boton.setOnAction((ActionEvent event) -> { // Convertir el texto en Integer, sin salta la excepción será porque // el usuario no introdujo un entero. try{ Integer i = Integer.parseInt(textIn.getText()); etiRespuesta.setText("Correcto: " + i); }catch (NumberFormatException e){ etiRespuesta.setText("¡No es un entero!"); } }); */ // Crear un layout VBox vBox = new VBox(); vBox.setPadding(new Insets(20)); // Añadir los controles al layout vBox.getChildren().addAll(etiInfo, textIn, boton, etiRespuesta); // Crear la escena Scene scene = new Scene(vBox, 400, 200); // Establecer el título del escenario primaryStage.setTitle("Probando validaciones"); // Añadir la escena al escenario primaryStage.setScene(scene); // Mostrar el escenario primaryStage.show(); } /** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } }
Añadir una variable de entorno a la carpeta lib:
export PATH_TO_FX=/home/nombreUsuario/javafx-sdk-14.0.1/lib
(cambiar nombreUsuario por el nombre del usuario en el equipo)
Compilar la aplicación usando:
javac --module-path $PATH_TO_FX --add-modules javafx.controls JavaFXvalidarInteger.java
Ejecutar la aplicación usando:
java --module-path $PATH_TO_FX --add-modules javafx.controls JavaFXvalidarInteger
Resultado:
Modificar el aspecto usando estilos
estilos.css:
.background{ -fx-background-color: white; } .header{ -fx-font-size: 2em; -fx-font-family: Arial; -fx-text-fill: black; } /* Label */ .label{ -fx-padding: 5 22 5 22; -fx-border-color: transparent; -fx-border-width: 2; -fx-background-radius: 0; -fx-background-color: #f0f5ee; -fx-font-family: Helvetica, Arial, sans-serif; -fx-font-size: 12pt; -fx-text-fill: black; -fx-label-padding: 6; } .text-field{ -fx-padding: 5 22 5 22; -fx-border-color: transparent; -fx-border-width: 2; -fx-background-radius: 0; -fx-background-color: #f0f5ee; -fx-font-family: Helvetica, Arial, sans-serif; -fx-font-size: 12pt; -fx-text-fill: rgb(209, 41, 41); -fx-label-padding: 6; } /******************************************************************************* * * * Push Button * * * ******************************************************************************/ .button { -fx-padding: 5 22 5 22; -fx-border-color: transparent; -fx-border-width: 2; -fx-background-radius: 0; -fx-background-color: #cccccc; -fx-font-family: Helvetica, Arial, sans-serif; -fx-font-size: 14pt; -fx-text-fill: black; -fx-label-padding: 2; } .button:hover{ -fx-background-color: #3dc444; } .button:pressed, .button:default:hover:pressed { -fx-background-color: black; -fx-text-fill: white; } .button:focused { -fx-border-color: transparent, black; -fx-border-width: 1, 1; -fx-border-style: solid, segments(1, 2); -fx-border-radius: 0, 0; -fx-border-insets: 1 1 1 1, 0; } .button:disabled, .button:default:disabled { -fx-opacity: 0.4; -fx-background-color: #cccccc; -fx-text-fill: #212121; } .button:default { -fx-background-color: #008287; -fx-text-fill: #ffffff; } .button:default:hover{ -fx-background-color: #219297; }
Poner estilos:
// Crear un layout VBox vBox = new VBox(); vBox.setPadding(new Insets(20)); vBox.setStyle("-fx-padding: 10;" + "-fx-border-style: solid inside;" + "-fx-border-width: 2;" + "-fx-border-insets: 5;" + "-fx-border-radius: 5;" + "-fx-border-color: blue;"); // Añadir los controles al layout vBox.getChildren().addAll(etiInfo, textIn, boton, etiRespuesta); // Crear la escena Scene scene = new Scene(vBox, 400, 200); // Añadir estilos en fichero css scene.getStylesheets().add("estilos.css"); // Establecer el título del escenario primaryStage.setTitle("Probando validaciones"); // Añadir la escena al escenario primaryStage.setScene(scene); // Mostrar el escenario primaryStage.show();
Más información:
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.