В чем разница между fx:id и id: в JavaFX?

может быть, действительно вопрос новичка....

Я начинаю изучать JavaFX в приложении FMXL с помощью Scene Builder, прочитав эти учебники:

http://docs.oracle.com/javase/8/javafx/get-started-tutorial/fxml_tutorial.htm

поэтому, как только я применил некоторые изменения, возникла проблема с этими 2 идентификаторами... Возможно, я что-то пропустил или перепутал...

может кто-нибудь подскажет, в каких случаях они используются один или еще?

4 ответов


id вы используете для установки CSS ID к вашему компоненту, например <Text id="welcome-text" .../> и в вашей таблице стилей у вас есть что-то вроде #welcome-text { font-size: 16pt; } таким образом, это будет применено к вашему Text.

fx:id вы используете, если хотите работать с вашими компонентами в своем классе контроллера, где вы аннотируете их с @FXML Text myWelcomeText.


fx: id-это идентификатор, связанный с компонентом в fxml для создания контроллера, и id используется для css.


Я взглянул на документ FXML, созданный с помощью JavaFX Scene Builder. Вы получаете доступ к элементам управления от Java Controller с fx: id. (edit) я исправлен, идентификатор имеет значение.

вы можете применить css из документа FXML следующим образом:

<Slider id="css_id" fx:id="myslider" styleClass="style_name" .../>

(замените ползунок любым элементом управления)

и взаимодействие контроллера Java:

@FXML
Slider myslider;

В JavaFX id используется для установки идентификатора CSS в компонент. И fx:id используется для доступа к этому компоненту в коде (т. е. в классе контроллера). fx:id работает как имя компонента.