.button {
-fx-background-color: lightgray;
}
@media (prefers-color-scheme: dark) {
.button {
-fx-background-color: darkgray;
}
}
< /code>
Но когда я использую этот код в своем примере: < /p>
.label {
-fx-text-fill: black;
}
.border-pane {
-fx-background-color: white;
}
@media (prefers-color-scheme: dark) {
.border-pane {
-fx-background-color: black;
}
.label {
-fx-text-fill: white;
}
}
< /code>
Javafx Node Label (Style Class .label) не является правильным стилизованием. Только javafx node borderpane (стиль класса .border-pane)-правильный стиль. />
Вот мой минимальный, воспроизводимый пример: < /p>
Содержание файла demo.java < /em>: < /p>
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class Demo extends Application {
public static void main(String[] args) {
launch();
}
@Override
public void start(Stage primaryStage) throws Exception {
String javaVersion = System.getProperty("java.version");
String javafxVersion = System.getProperty("javafx.version");
String labelContent = "Hello, JavaFX " + javafxVersion
+ ", running on Java " + javaVersion + ".";
Label mainLabel = new Label(labelContent);
BorderPane root = new BorderPane();
root.getStyleClass().add("border-pane");
root.setCenter(mainLabel);
Scene scene = new Scene(root, 640, 480);
scene.getStylesheets().add("test.css");
primaryStage.setScene(scene);
primaryStage.setTitle("JavaFX Demo");
primaryStage.show();
}
}
Содержание файла test.css :
.label {
-fx-text-fill: black;
}
.border-pane {
-fx-background-color: white;
}
@media (prefers-color-scheme: dark) {
.border-pane {
-fx-background-color: black;
}
.label {
-fx-text-fill: white;
}
}
Содержание файла rundemo.bat :
@ECHO OFF
REM Launching as Single-File Source-Code Program
D:\JDKs\Azul_Zulu_JDKFX25\zulu25.28.85-ca-fx-jdk25.0.0-win_x64\bin\java --enable-native-access=javafx.graphics Demo.java
< /code>
Среда:
OS: Windows 11 Pro (64 -бит), версия 24H2, ОС сборка 26100.6584 < /p>
java (использовал Azul Zulu Build of OpenJDK 25 с Javafx 25 - Distrib. ZULU25.28.85-CA-FX-JDK25.0.0-win_x64.zip): < /p>
java --version
openjdk 25 2025-09-16 LTS
OpenJDK Runtime Environment Zulu25.28+85-CA (build 25+36-LTS)
OpenJDK 64-Bit Server VM Zulu25.28+85-CA (build 25+36-LTS, mixed mode, sharing)
Примечания для запуска demo.java в Windows:
- Запуск demo.java by rundemo.bat ; prerequisite is installed required Java with JavaFX (need modify path to java tool in this file runDemo.bat)
- launch Windows Settings application
- find Color mode in Home page (below on Home Page)
- Переключение с Light на Dark и наоборот (и повторить)
- Ожидаемый результат - это переключение цвета сцены фонового применения и цвета ярлыка (когда черный фоновый фон, настройки белой и вице Dark или light )
- здесь IS Is Bug ; Потому что, когда фон является черным, то этикетка также является черной, и она должна быть белой, или в @media Query может быть только одним узлом
Sep 19, 2025 9:26:46 AM javafx.css.CssParser consumeRBrace
WARNING: CSS Error parsing file:/D:/JDKs/JDK_samples/test.css: Expected RBRACE at [13,1]
Подробнее здесь: https://stackoverflow.com/questions/797 ... -javafx-25
Мобильная версия