Css 在场景生成器上禁用标签字体和文本填充

Css 在场景生成器上禁用标签字体和文本填充,css,javafx,scenebuilder,Css,Javafx,Scenebuilder,我对Scene Builder和JavaFXML相当陌生。当我在锚定窗格中添加标签时,我无法更改文本的字体和颜色。两个选项都已灰显,旁边有一个CSS标题。 我怎么能不禁用这些选项?按钮也是如此 FXML文件: <?xml version="1.0" encoding="UTF-8"?> <?import com.jfoenix.controls.JFXButton?> <?import javafx.scene.control.Label?> <?i

我对Scene Builder和JavaFXML相当陌生。当我在锚定窗格中添加标签时,我无法更改文本的字体和颜色。两个选项都已灰显,旁边有一个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>

将外部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文件捆绑到FXML文件中,即可将其添加到场景生成器中,以便将样式应用于预览

这可以通过
预览->场景样式表->添加样式表…
完成

一旦应用了样式表,就可以锁定某些设置,这意味着css文件中已经设置了该值

场景生成器首选项

场景生成器有一个内部首选项系统,用于跟踪最近使用的FXML文件的不同设置

对于它保存的每个文件:

  • 名字
  • 路径
  • 十、 Y、宽度和高度
  • 分隔器位置,可见窗格
  • 以及添加到FXML文件中的外部样式表文件
这意味着,如果关闭“场景生成器”,并在几天后打开同一个FXML文件时返回,所有这些首选项都将恢复并应用

在OP发布的案例中,由于一些未知的原因,css文件被删除,但仍然应用了锁

因此,本例中的快速修复方法只是编辑首选项文件,并删除文档条目。它的所有设置都将丢失,但没有真正重要的设置

查找首选项文件

在Mac上,可以在以下位置找到该文件:

/Users/<user>/Library/Preferences/com.oracle.javafx.plist
并且可以使用Regedit进行编辑

在Linux上(可能)


将外部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文件捆绑到FXML文件中,即可将其添加到场景生成器中,以便将样式应用于预览

这可以通过
预览->场景样式表->添加样式表…
完成

一旦应用了样式表,就可以锁定某些设置,这意味着css文件中已经设置了该值

场景生成器首选项

场景生成器有一个内部首选项系统,用于跟踪最近使用的FXML文件的不同设置

对于它保存的每个文件:

  • 名字
  • 路径
  • 十、 Y、宽度和高度
  • 分隔器位置,可见窗格
  • 以及添加到FXML文件中的外部样式表文件
这意味着,如果关闭“场景生成器”,并在几天后打开同一个FXML文件时返回,所有这些首选项都将恢复并应用

在OP发布的案例中,由于一些未知的原因,css文件被删除,但仍然应用了锁

因此,本例中的快速修复方法只是编辑首选项文件,并删除文档条目。它的所有设置都将丢失,但没有真正重要的设置

查找首选项文件

在Mac上,可以在以下位置找到该文件:

/Users/<user>/Library/Preferences/com.oracle.javafx.plist
并且可以使用Regedit进行编辑

在Linux上(可能)


创建css文件并添加此样式:

.label {}
保存文件并打开SceneBuilder,转到预览->场景样式表->添加样式表。。。 选择你的.css文件并尝试


创建css文件并添加此样式:

.label {}
保存文件并打开SceneBuilder,转到预览->场景样式表->添加样式表。。。 选择你的.css文件并尝试

如果你去

'preview' -> 'Themes' 
您可能已经选择了非fx主题,如Glion Mobile light。 只需选择Modena,您的所有属性都将再次启用

选择一个不禁用CSS操作的主题:

如果你去

'preview' -> 'Themes' 
您可能已经选择了非fx主题,如Glion Mobile light。 只需选择Modena,您的所有属性都将再次启用

选择一个不禁用CSS操作的主题:


您是否在标签上设置了自定义样式?请发布完整的FXML。不,我不记得设置了任何自定义样式@你确定这是同一个文件吗?首先,您发布的FXML中的标签没有文本。另外-如果不包括
jfoenix
库,是否会发生这种情况?是的,这是同一个文件。后来我改了课文。是的,即使我没有包括jfoenix库,它也会发生。您能检查FXML是否应用了样式表吗?转到场景生成器预览菜单,选择
场景样式表
,然后查看是否在
删除样式表
下找到列出的css。如果是这样,删除它应该可以让您完全控制您的FXML样式。您是否在标签上设置了自定义样式?请发布完整的FXML。不,我不记得设置了任何自定义样式@你确定这是同一个文件吗?首先,您发布的FXML中的标签没有文本。另外-如果不包括
jfoenix
库,是否会发生这种情况?是的,这是同一个文件。后来我改了课文。是的,即使我没有包括jfoenix库,它也会发生。您能检查FXML是否应用了样式表吗?转到场景生成器预览菜单,选择
场景样式表
,然后查看是否在
删除样式表
下找到列出的css。如果是这样,删除它应该可以让您完全控制FXML样式。