例如,如果我有一个名为foo的Text对象和另一个名为bar的Text对象,是否可以合并
foo.setFont(Font.font ("Courier New"));
bar.setFont(Font.font ("Courier New"));
foo.setFill(Color.GREEN);
bar.setFill(Color.GREEN);
如果这些Text对象位于ArrayList中,怎么可能?
答案 0 :(得分:0)
没有列表:
您可以使用带有varargs
的方法来设置它们:
private void setStyles(Text... texts) {
for (Text text : texts) {
text.setFont(Font.font("Courier New"));
text.setFill(Color.GREEN);
}
}
现在,要设置多个Text
对象的样式,只需将它们全部传递给此方法:
setStyles(foo, bar);
(Text...
中的省略号基本上告诉该方法接受任意数量的Text
对象,因此您无需为每个对象都调用它。
带有列表:
此方法几乎完全相同,但是参数接受List<Text>
:
private void setStyles(List<Text> texts) {
for (Text text : texts) {
text.setFont(Font.font("Courier New"));
text.setFill(Color.GREEN);
}
}
现在,您可以将对象列表传递给方法:
setStyles(listOfTexts);
使用内嵌样式表:
奖励答案:您还可以通过使用setStyle
对象的Text
方法来获得相同的结果。为此,只需像下面这样在您的方法中替换循环的主体即可:
text.setStyle("-fx-text-fill: green; -fx-font-family: 'Courier New'");