Sehr frustrierend, da ich Anleitungen und grundlegende Tutorials folge. Ich kann CSS-Stile auf verschiedene Elemente anwenden, aber nicht auf vbox oder hbox.
Ich habe die folgende einfache Anwendung, die FMXL und CSS verwendet, um eine einfache Szene zu erstellen:
import java.net.URL; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.stage.Stage; import javafx.scene.Parent; import javafx.scene.Scene; öffentliche Klasse BingRen erweitert Anwendung { @Override public void start(Stage PrimaryStage) { Übergeordneter Stamm = null; FXMLLoader Loader = new FXMLLoader(); URL xmlUrl = getClass().getResource("/BingRen.fxml"); loader.setLocation(xmlUrl); versuchen { root = loader.load(); Szene scene = new Scene(root,400,400); scene.getStylesheets().add(getClass().getResource("BingRen.css").toExternalForm()); PrimaryStage.setScene(Szene); PrimaryStage.show(); } Catch(Ausnahme e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } }
Erstellen Sie mit FXML nur ein BordPane und zwei HBoxes, die jeweils eine Beschriftung enthalten.几乎和 HellopApp 一样简单:
还有CSS来设置一些基本属性:
.hbox { -fx-Hintergrundfarbe: #00ff00; -fx-border-color: #00ff00; -fx-Rahmenbreite: 2px; -fx-padding: 10; -fx-spacing: 8; } .Etikett { -fx-text-fill: #0000ff; }
标签正确变为蓝色,但未应用 hbox 样式
事实上,这些建议都不起作用.
我尝试过:
为什么您当前的方法失败了
查看CSS 文档一个>.
对于HBox
对于标签
因此,HBox 不存在“.hbox”这样的样式类,除非您添加了一个样式类,但您还没有这样做。
CSS 选择器和 JavaFX 背景
阅读标题为" 的部分CSS 和 JavaFX 场景图”:
应用示例
因此,您可以通过三种方法解决此问题:
在 CSS 文件中使用类型选择器:
在 CSS 文件中应用样式类:
并在 FXML 中写入:
或者在代码中写入:
在 CSS 文件中应用样式 ID:
并在 FXML 中写入:
或者在代码中写入:
选择器范围差异
每种方法的标准应用的含义有所不同: