通过阅读以下教程,我开始使用Scene Builder在FMXL应用程序中学习JavaFX:
http:// docs .oracle.com / javase / 8 / javafx / get-started-tutorial / fxml_tutorial.htm
因此,一旦我应用了一些更改,就会出现2个ID的问题...我可能会错过或对它们感到困惑...
谁能告诉我在哪种情况下使用它们一个或另一个?
#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
的工作方式类似于组件名称。
评论
您使用的id来为组件设置CSS ID,例如注释它们,这将应用于您的Text和必须使用的fx:id。
@Patrick它不是.welcome-text,而是CSS中的#welcome-text。