我是Scene Builder和JavaFXML的新手。当我在我的Anchor Pane中添加一个Label时,我无法更改Text的字体和它的颜色。这两个选项都是灰色的,旁边有这个CSS标题。 我怎么能不禁用这些选项?这也是按钮的情况。
FXML文件:
<?xml version="1.0" encoding="UTF-8"?>
<?import com.jfoenix.controls.JFXButton?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.VBox?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="672.0" prefWidth="176.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1">
<children>
<AnchorPane prefHeight="188.0" prefWidth="176.0" style="-fx-background-color: #1c94d900;">
<children>
<Label fx:id="StudentUSN" layoutX="15.0" layoutY="145.0" prefHeight="24.0" prefWidth="146.0" />
</children>
</AnchorPane>
<VBox prefHeight="464.0" prefWidth="176.0">
<children>
<JFXButton fx:id="b1" prefHeight="44.0" prefWidth="176.0" style="-fx-background-color: #1156cf;" text="Attendance" />
<JFXButton fx:id="b2" disable="true" prefHeight="44.0" prefWidth="176.0" style="-fx-background-color: #1156cf;" text="Clubs" />
<JFXButton fx:id="b3" disable="true" prefHeight="48.0" prefWidth="176.0" style="-fx-background-color: #1156cf;" text="Results" />
<JFXButton fx:id="b4" disable="true" prefHeight="48.0" prefWidth="176.0" style="-fx-background-color: #1156cf;" text="Feedback" />
</children>
</VBox>
</children>
</VBox>
答案 0 :(得分:3)
将外部CSS应用于FXML
考虑到简单的测试:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8">
<children>
<Label layoutX="448.0" layoutY="49.0" text="Label" />
</children>
</AnchorPane>
和一个单独的css文件:
.label {
-fx-font-family: Roboto;
-fx-text-fill: grey;
}
如果没有在FXML文件中捆绑CSS文件,您可以将其添加到Scene Builder,因此它会将样式应用于预览。
这可以从Preview->Scene Style Sheets->Add a Style Sheet...
完成。
应用样式表后,可以锁定某些设置,这意味着该值已在css文件中设置。
Scene Builder偏好设置
Scene Builder有一个内部首选项系统,可以跟踪最近使用的FXML文件的不同设置。
对于它保存的每个文件:
这意味着如果你关闭了Scene Builder,几天之后又回来了,当打开相同的FXML文件时,所有这些首选项都将被恢复并应用。
在OP发布的案例中,由于某些未知原因,css文件已被删除,但锁仍然被应用。
因此,在这种情况下快速修复只是编辑首选项文件,并删除文档条目。它的所有设置都将丢失,但那里没有什么重要的。
查找偏好设置文件
在Mac上,可以在此处找到该文件:
/Users/<user>/Library/Preferences/com.oracle.javafx.plist
可以使用Xcode进行编辑。
在Windows上,可以在注册表中的此项找到首选项:
HKEY_CURRENT_USER\Software\JavaSoft\Prefs\com\oracle\javafx
可以使用Regedit进行编辑。
在Linux上(可能)
${user.home}/.java/.userPrefs/...
答案 1 :(得分:1)
创建一个css文件并添加此样式:
.label {}
保存文件并打开SceneBuilder,转到预览 - &gt;场景样式表 - &gt;添加样式表... 选择.css文件并尝试...
答案 2 :(得分:0)