<p>非常令人沮丧,因为我遵循指南和基本教程。我可以将 CSS 样式应用于不同的元素,但不能应用于 vbox 或 hbox。</p>
<p>我有以下简单的应用程序,使用 FMXL 和 CSS 创建一个简单的场景:</p>
<pre class="brush:php;toolbar:false;">import java.net.URL;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;
public class BingRen extends Application {
@Override
public void start(Stage primaryStage) {
Parent root = null;
FXMLLoader loader = new FXMLLoader();
URL xmlUrl = getClass().getResource("/BingRen.fxml");
loader.setLocation(xmlUrl);
try {
root = loader.load();
Scene scene = new Scene(root,400,400);
scene.getStylesheets().add(getClass().getResource("BingRen.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}</pre>
<p>使用 FXML,仅创建一个 BordPane 和 2 个 HBox,各包含一个标签。几乎和HellopApp一样简单:</p>
<BorderPane fx:id="rootBorderPane"
xmlns=“http://javafx.com/javafx”
xmlns:fx="http://javafx.com/fxml"
fx:controller="MainControler">
<顶部>
<H盒>
为什么您当前的方法失败了
查看CSS 文档一个>.
对于HBox
对于标签
因此,HBox 不存在“.hbox”这样的样式类,除非您添加了一个样式类,但您还没有这样做。
CSS 选择器和 JavaFX 背景
阅读标题为 " 的部分CSS 和 JavaFX 场景图”:
应用示例
因此,您可以通过三种方法解决此问题:
在 CSS 文件中使用类型选择器:
在 CSS 文件中应用样式类:
并在 FXML 中写入:
或者在代码中写入:
在 CSS 文件中应用样式 ID:
并在 FXML 中写入:
或者在代码中写入:
选择器范围差异
每种方法的标准应用的含义有所不同: