也许是一个真正的新手问题。...

通过阅读以下教程,我开始使用Scene Builder在FMXL应用程序中学习JavaFX:

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

因此,一旦我应用了一些更改,就会出现2个ID的问题...我可能会错过或对它们感到困惑...

谁能告诉我在哪种情况下使用它们一个或另一个?

评论

您使用的id来为组件设置CSS ID,例如,并且在样式表中,您会看到类似的内容。welcome-text{font-size:16pt; }因此,如果要在Controller类中使用组件,请使用@FXML Text myWelcomeText
注释它们,这将应用于您的Text和必须使用的fx:id。
@Patrick它不是.welcome-text,而是CSS中的#welcome-text。

#1 楼

id用于设置Component的CSS ID,例如<Text id="welcome-text" .../>,并且在样式表中具有类似#welcome-text { font-size: 16pt; }的名称,因此将应用于Text。如果要使用,请使用fx:id。您的Controller类中的组件,并在其中用@FXML Text myWelcomeText对其进行注释。

评论


因此,当我们需要为节点设置样式并要分配ID时,是否必须将ID和fx:id分配给节点?

–范迪·苏珊托(Fandi Susanto)
17年9月9日在11:56

@Fandi当前,如果仅分配了fx:id,则该值还将用于id属性。但是我不确定这是记录在案的行为还是实现细节。

–色拉
3月28日13:18

#2 楼

fx:id是与fxml中的组件关联以创建控制器的标识,该id用于CSS。

#3 楼

我看了使用JavaFX Scene Builder生成的FXML文档。您可以使用fx:id从Java控制器访问控件。 (编辑)我已经纠正了,id确实很重要。

您可以像这样从FXML文档应用css:

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


(替换带有任何控件的滑块)

和Java控制器交互:

@FXML
Slider myslider;


评论


CSS ID和CSS类之间存在差异。

–詹姆斯_D
2014年5月15日19:00

#4 楼

在JavaFX中,id用于为组件设置CSS ID。 fx:id用于访问代码中的该组件(即在控制器类中)。 fx:id的工作方式类似于组件名称。