我想在javafx中显示不同的标签,我想根据它们的文本设置它们的样式。我添加了一个css文件并设置了标签的类。然后,我检查了fxml,发现文本保存在text属性中。
我研究了正常的css,发现你可以通过属性来改变风格。为此,您需要使用 []。我在代码中尝试了一下,但它不起作用。
我的代码: FXML:
<?xml version="1.0" encoding="UTF-8"?>
<?import java.net.URL?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.HBox?>
<HBox xmlns="http://javafx.com/javafx/8.0.121" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="controller">
<stylesheets>
<URL value="@../css/loadingScreen.css"/>
</stylesheets>
<Label styleClass="field" text="1" />
<Label styleClass="field" text="2" />
<Label styleClass="field" text="3" />
</HBox>
CSS:
.field {
-fx-text-alignment: center;
-fx-pref-height: 64px;
-fx-min-width: 64px;
-fx-pref-width: 64px;
-fx-min-height: 64px;
-fx-background-color: blue;
}
.field[text="1"]{
-fx-background-color: red;
}
.field[text="2"]{
-fx-background-color: yellow;
}
.field[text="3"]{
-fx-background-color: green;
}
我尝试了与正常的css和html相同的方法,它在那里工作。网页:
<!DOCTYPE html>
<html>
<head>
<style>
.field[text="1"]{
background-color: red;
}
.field[text="2"]{
background-color: yellow;
}
.field[text="3"]{
background-color: green;
}
</style>
</head>
<body>
<div class="field" text="1" >1</div>
<div class="field" text="2" >2</div>
<div class="field" text="3" >3</div>
</body>
</html>
我必须做些什么才能在fxml中做到这一点?
噜噜哒
jeck猫
相关分类