Javafx: propriedades de ligao

JavaFX vinculativo propriedade

permite que você sincronize o valor de duas propriedades de modo que sempre que uma das propriedades as alterações, o valor da outra propriedade é atualizada automaticamente. São suportados dois tipos de ligação:

Video: JavaFX Combobox Example

  • Unidirecional ligação: Com as obras de ligação de ligação unidirecional em apenas uma direção. Por exemplo, se você vincular propriedade à propriedade B, o valor da propriedade Uma muda quando mudanças propriedade B, mas não o contrário.

  • Bidirecional de ligação: Com bidireccional de ligação, os dois valores de propriedade são sincronizados de modo a que se quer as alterações de propriedades, a outra propriedade é automaticamente mudado também.

A criação de qualquer tipo de ligação é surpreendentemente fácil. Cada propriedade tem um ligar e uma bindBiDirectional método. Para configurar uma ligação, simplesmente chamar esse método, especificando a propriedade que você deseja vincular a como argumento.

Aqui está um exemplo que cria a ligação de um unidirecional na texto propriedade de um rótulo para o texto propriedade de um campo de texto, de modo que o conteúdo do rótulo sempre exibe o conteúdo do campo de texto:

lable1.textProperty () ligar (text1.textProperty ()). -


Com essa ligação no lugar, o texto apresentado por label1 é atualizado automaticamente, caractere por caractere, quando o usuário digita os dados no campo de texto.

Video: Java - JavaFX[ Controles de formulário ] - ChoiceBox

O exemplo a seguir mostra como criar uma ligação entre dois campos de texto bidirecional, com o nome text1 e text2:

. Text1.textProperty () bindBidirectional (text2.textProperty ()) -

Com essa ligação no lugar, qualquer texto digitado em qualquer campo de texto será replicado automaticamente no outro.

Para mostrar como a ligação pode ser usado em um programa completo, esta listagem de código mostra um programa com dois campos de texto com um par de etiquetas obrigado a cada um. O primeiro campo de texto aceita o nome de um personagem em um jogo, eo segundo campo de texto aceita o nome de um ator. Os rótulos exibir o ator que irá desempenhar o papel, como mostrado na figura.

Uma caixa de diálogo em um programa permite-lhe escolher o ator vai desempenhar um papel em um filme.

Video: 1. Ligações Químicas: A Ligação Iônica [Química Geral]

importação javafx.application. * - import javafx.stage. * - import javafx.scene. * - import javafx.scene.layout. * - import javafx.geometry. * -. importação javafx.scene.control * - classe pública roleplayer estende aplicação {public static void main (String [] args) {lançamento (args) -} TextField txtCharacter-TextField txtActor- @ Substituir início public void (Stage primaryStage) {// criar o personagem labelLabel lblCharacter = new Label ("Nome do personagem:") -lblCharacter.setMinWidth (100) -lblCharacter.setAlignment (Pos.BOTTOM_RIGHT) - // Criar o texto Character fieldtxtCharacter = new TextField () - txtCharacter.setMinWidth (200) -txtCharacter.setMaxWidth (200) -txtCharacter.setPromptText ("Digite o nome do personagem aqui.") - // cria o Ator labelLabel lblActor = new Label ("Nome do ator:") -lblActor.setMinWidth (100) -lblActor.setAlignment (Pos.BOTTOM_RIGHT) - // Criar o texto Ator fieldtxtActor = new TextField () - txtActor.setMinWidth (200) -txtActor.setMaxWidth (200) -txtActor.setPromptText ("Digite o nome do ator aqui.") - // cria o Papel labelsLabel lblRole1 = new Label ("O papel de ") -label lblRole2 = nova etiqueta () - Etiqueta lblRole3 = nova etiqueta (" será interpretado por ") -label lblRole4 = new Label () - // criar o personagem paneHBox paneCharacter = new HBox (20, lblCharacter, txtCharacter) -paneCharacter.setPadding (novos Insets (10)) - // Criar o Ator paneHBox paneActor = new HBox ( 20, lblActor, txtActor) -paneActor.setPadding (novos Insets (10)) - // criar a função paneHBox paneRole = new HBox (lblRole1, lblRole2, lblRole3, lblRole4) -paneRole.setPadding (novos Insets (10)) - / / Adicionar os painéis Character e ator a um painel VBoxVBox = new VBox (10, paneCharacter, paneActor, paneRole) - // Criar a bindingslblRole2.textProperty () bind (txtCharacter.textProperty ().) -. lblRole4.textProperty () ligam-se (txtActor.textProperty ()) - // Definir a cena stageScene = new Scene (painel) -primaryStage.setScene (cena) -primaryStage.setTitle ("Jogador papel") -primaryStage.show () -}}

Publicações relacionadas