無法設定水平盒子或垂直盒子的樣式
<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>
<pre class="brush:php;toolbar:false;"><?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.geometry.*?>
<BorderPane fx:id="rootBorderPane"
xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml"
fx:controller="MainControler">
<top>
<HBox>
<Label text="BingRen app" />
</HBox>
</top>
<bottom>
<HBox>
<Label text="Status bar" />
</HBox>
</bottom>
<center>
</center>
</BorderPane></pre>
<p>還有CSS來設定一些基本屬性:</p>
<pre class="brush:php;toolbar:false;">.hbox {
-fx-background-color: #00ff00;
-fx-border-color: #00ff00;
-fx-border-width: 2px;
-fx-padding: 10;
-fx-spacing: 8;
}
.label {
-fx-text-fill: #0000ff;
}</pre>
<p>標籤正確變為藍色,但未套用 hbox 樣式</p>
<hr />
<p>事實上,這些建議都不起作用。 </p>
<p>我試過:</p>
<ul>
<li>將 css 檔案中的 .hbox 改為 .Hbox</li>
<li>在css檔中建立#allbox並且加入fx-id="allbox"和fxml檔</li>
</ul>
<p>對於每次更改,我都會更改標籤的顏色,以確保新版本的 CSS 能夠被讀取。</p>
<p>標籤總是改變顏色,但我從來沒有在水平盒中得到背景或填充</p>