Javafx: propiedades de unión
Video: Intersección de sucesos y propiedades
JavaFX propiedad de enlace le permite sincronizar el valor de dos propiedades de manera que cada vez que uno de los cambios en las propiedades, el valor de los demás bienes se actualiza automáticamente. Dos tipos de unión son compatibles:
Unidireccional de unión: Con las obras de unión, unión unidireccionales en una sola dirección. Por ejemplo, si enlaza la propiedad de A a B la propiedad, el valor de la propiedad A cambia cuando cambia la propiedad B, pero no al revés.
Bidireccional de unión: Con bidireccional de unión, los dos valores de las propiedades están sincronizados de manera que si cualquiera de los cambios de propiedad, la otra propiedad se cambia automáticamente.
La creación de cualquier tipo de unión es sorprendentemente fácil. Cada propiedad tiene una enlazar y una bindBiDirectional método. Para configurar una unión, sólo tiene que llamar a este método, especificando la propiedad que desea unirse a como argumento.
Aquí hay un ejemplo que crea una unión unidireccional en el texto propiedad de una etiqueta a la texto propiedad de un campo de texto, por lo que el contenido de la etiqueta siempre muestra el contenido del campo de texto:
lable1.textProperty () se unen (text1.textProperty ()). -
Con esta unión en su lugar, el texto está representada por label1 se actualiza automáticamente, carácter por carácter, cuando el usuario escribe datos en el campo de texto.
Video: 08. JavaFx - SQL Server Tutorials : Search by Multi-Column
El siguiente ejemplo muestra cómo crear un bidireccional unión entre dos campos de texto, llamado Texto 1 y texto2:
. Text1.textProperty () bindBidirectional (text2.textProperty ()) -
Con esta unión en su lugar, cualquier texto que se teclea en cualquiera de los campos de texto se replica automáticamente en el otro.
Video: propiedades de la unión de conjuntos
Para mostrar cómo la unión se puede utilizar en un programa completo, este código muestra un programa con dos campos de texto con un par de marcadores unidos a cada uno. El primer campo de texto acepta el nombre de un personaje de una obra de teatro, y el segundo campo de texto acepta el nombre de un actor. Las etiquetas muestran el actor que interpretará el papel, como se muestra en la figura.
Video: JavaFX: European Broadcasting Union / NEOS
javafx.application importación * -. javafx.stage importación * -. javafx.scene importación * -. javafx.scene.layout importación * -. javafx.geometry importación * -.. javafx.scene.control importación * - Roleplayer clase pública se extiende aplicación {void main (String [] args) {public static lanzamiento (args) -} TextField txtCharacter-TextField txtActor- @ Override inicio public void (Etapa primaryStage) {// crear el personaje labelLabel lblCharacter = new Label ("Nombre del personaje:") -lblCharacter.setMinWidth (100) -lblCharacter.setAlignment (Pos.BOTTOM_RIGHT) - // Crear el texto de caracteres fieldtxtCharacter = new TextField () - txtCharacter.setMinWidth (200) -txtCharacter.setMaxWidth (200) -txtCharacter.setPromptText ("Introduzca el nombre del personaje aquí.") - // crear el actor labelLabel lblActor = new Label ("Nombre del actor:") -lblActor.setMinWidth (100) -lblActor.setAlignment (Pos.BOTTOM_RIGHT) - // Crear el texto Actor fieldtxtActor = new TextField () - txtActor.setMinWidth (200) -txtActor.setMaxWidth (200) -txtActor.setPromptText ("Introduzca el nombre del actor aquí.") - // crear el papel labelsLabel lblRole1 = new Label ("El rol de ") -Label lblRole2 = new Label () - Label lblRole3 = new Label (" será interpretado por ") -Label lblRole4 = new Label () - // crear el personaje paneHBox paneCharacter = new HBox (20, lblCharacter, txtCharacter) -paneCharacter.setPadding (nuevas inserciones (10)) - // Crear el actor paneHBox paneActor = new HBox ( 20, lblActor, txtActor) -paneActor.setPadding (nuevos Insets (10)) - // crear la función paneHBox paneRole = new HBox (lblRole1, lblRole2, lblRole3, lblRole4) -paneRole.setPadding (nuevos Insets (10)) - / / Añadir los paneles Carácter y actor a un panel VBoxVBox = nueva caja vertical (10, paneCharacter, paneActor, paneRole) - // Crear el bindingslblRole2.textProperty () se unen (txtCharacter.textProperty ()) -.. lblRole4.textProperty () se unen (txtActor.textProperty ()) - // Establecer la escena stageScene = nueva escena (panel) -primaryStage.setScene (escena) -primaryStage.setTitle ("Jugador de rol") -primaryStage.show () -}}