2017-02-01 1 views
1

Comment est-ce que je fais des textarea obtenir l'entrée de l'utilisateur du champ de texte? Comment contrôler ces boutons à partir du contrôleur et est-il possible de faire en sorte que le champ de texte agisse en tant que textarea lorsque l'utilisateur soumet, l'utilisateur peut l'éditer en cliquant sur la zone de texte à éditer?créer une application de note à partir de javafx

<?xml version="1.0" encoding="UTF-8"?> 

<?import javafx.geometry.*?> 
<?import java.lang.*?> 
<?import java.util.*?> 
<?import javafx.scene.*?> 
<?import javafx.scene.control.*?> 
<?import javafx.scene.layout.*?> 
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="javafxnote.Note2Controller"> 
    <top> 
     <AnchorPane prefHeight="56.0" prefWidth="600.0" BorderPane.alignment="CENTER"> 
     <children> 
      <Button fx:id="btn2" layoutX="555.0" layoutY="10.0" mnemonicParsing="false" onMouseClicked="#test" text="x" /> 
     </children> 
     </AnchorPane> 
    </top> 
    <center> 
     <TextArea prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER"> 
     <BorderPane.margin> 
      <Insets left="10.0" right="10.0" /> 
     </BorderPane.margin></TextArea> 
    </center> 
    <padding> 
     <Insets bottom="20.0" /> 
    </padding> 
    <bottom> 
     <VBox prefHeight="149.0" prefWidth="600.0" BorderPane.alignment="CENTER"> 
     <children> 
      <TextField prefHeight="111.0" prefWidth="600.0"> 
       <VBox.margin> 
        <Insets /> 
       </VBox.margin> 
      </TextField> 
      <AnchorPane prefHeight="38.0" prefWidth="580.0"> 
       <children> 
        <Button fx:id="btsub" layoutX="434.0" layoutY="21.0" mnemonicParsing="false" text="submit" /> 
        <Button fx:id="btcl" layoutX="518.0" layoutY="21.0" mnemonicParsing="false" text="clear" /> 
       </children> 
      </AnchorPane> 
     </children> 
     <BorderPane.margin> 
      <Insets left="10.0" right="10.0" /> 
     </BorderPane.margin> 
     </VBox> 
    </bottom> 
</BorderPane> 

Répondre

0

Pour ajouter des actions dans le contrôleur pour les boutons:

Ajouter la classe contrôleur SceneBuilder Pour spécifier vérifier la classe du contrôleur du côté droit de l'SceneBuilder sous l'onglet « Controller » est un champ de texte nommé "Classe de contrôleur". Notez également qu'il y a une liste avec tous les nœuds qui ont un "fx-id".

Ajouter fx: id à tous les noeuds dont vous avez besoin dans le contrôleur Pour tout composant que vous devez travailler avec dans le contrôleur ajouter un fx: id. Pour les actions, ajoutez un nom de méthode dans l'onglet "Code" de n'importe quel composant. Par exemple, si vous voulez une action sur le bouton « Soumettre » ajouter le nom de la méthode là, dans le champ « Sur action » nommé « submitPushed »

ajouter dans la classe du contrôleur tous les noeuds avec fx: id Pour chaque nœud que vous avez attribué avec un fx: id, vous devez l'ajouter en tant que propriété dans la classe de contrôleur avec l'annotation @FXML. Pour un champ de texte avec le fx: id textSubmit vous annonce une propriété dans le contrôleur

@FXML TextField textSubmit 

Dans la classe de contrôleur définir les méthodes pour les actions Pour le bouton nommé « Soumettre » avec l'action « submitPushed » vous devez déclarer la méthode de l'action

@FXML submitPushed(ActionEvent event){ 
    //add code here for what the button should do 
} 

Si vous voulez ajouter le contenu de TextField à l'TextArea lorsque ce bouton est poussé

@FXML submitPushed(ActionEvent event){ 
    String content=textField.getText(); 
    String contentTextArea = textArea.getText(); 
    textArea.setText(contentTextArea+"\n"+content); 
}