2013-09-26 5 views
0

Я новичок в Javafx. Я использую Java-конструктор для создания формы. Когда я его сохранил, он создает файл fxml. Это код моей формы ..Как получить значения из fxml с помощью java scene builder

<?xml version="1.0" encoding="UTF-8"?> 
<?import java.lang.*?> 
<?import java.util.*?> 
<?import javafx.scene.control.*?> 
<?import javafx.scene.layout.*?> 
<?import javafx.scene.paint.*?> 

<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="- Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2"> 
<children> 
<Label layoutX="118.0" layoutY="95.0" prefWidth="82.0" text="Username" /> 
<TextField layoutX="200.0" layoutY="95.0" prefWidth="143.0" /> 
<TextField layoutX="200.0" layoutY="137.0" prefWidth="143.0" /> 
<Label layoutX="118.0" layoutY="143.0" prefWidth="61.0" text="Password" /> 
<Button layoutX="244.0" layoutY="190.0" mnemonicParsing="false" text="submit" /> 
</children> 
</AnchorPane> 

enter image description here Теперь я хочу, чтобы получить значения этих полей, так что я могу положить, что в базе данных .. пожалуйста, любой один помочь мне.

ответ

1

Добавить Fx: ID = "MyWidget" в ваших компонентах FXML как <Button fx:id="myButton" .../>

Затем добавить контроллер Java, объявленный в FXML и ввести компонент внутри него с аннотированием @FXML

@FXML 
private Button myButton; 

Как только вы получите его в java, вы можете получить доступ к любому свойству, для вашего случая это должен быть textInput.getText();

2

Если вы действительно используете SceneBuilder, вы можете установить fx:id внутри него показано here. Затем выберите класс контроллера, который будет инстанцированным, если вы строите FXML (шахта de.thatsich.bachelor.javafx.DisplayPresenter в этом примере)

В этом контроллере вы должны иметь @FXML поля, которое имеет точно такое же имя, как fx:id вы предоставили в вашем FXML -Файл. Эти поля могут быть частными, если хотите.

Например:

У меня есть this Button: соответствующий код для этой кнопки и ее onClickAction будет

DisplayPresenter.java

@FXML private Button nodeButtonAddImage; 
@FXML private void onAddImageAction() throws IOException { 
... 
} 

и как вы можете видеть, вы дон Не нужно создавать экземпляр кнопки самостоятельно. FXMLLoader сделает это за вас.

Смежные вопросы