0

我想为所有窗格和所有视图保持单一背景颜色(黑色)。我不想为每个视图编写 css。我主要只使用 vbox 和 hbox。并且很少有表格视图。是否有任何简单的方法可以编写一次 css 并适用于所有人。先感谢您

4

3 回答 3

1

您可以在 CSS 类中使用 .pane,它适用于所有窗格。

    .pane{
        -fx-background-color:  black;
    }

同样适用于 .button 等。

于 2016-04-12T07:10:29.913 回答
1

您不会为每个视图编写一个 css,而是为每个元素提供相同的样式类。

    Pane pane = new Pane();
    pane.getStyleClass().add("bg-black-style");

您需要将样式表添加到场景的某个地方

scene.getStylesheets().add("css-file.css");

在css文件中

.bg-black-style {
    -fx-background-color:  black;
}

这样,每件应该看起来相同的东西都在一个地方拥有它的风格。

于 2016-02-25T14:42:14.893 回答
0

您可以将样式表应用于整个应用程序,如下所示:

package hacks;

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ListView;
import javafx.scene.control.TextArea;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;

import java.net.URL;

/**
 * Created by BDay on 7/10/17.<br>
 * <br>
 * CssStyle sets the style for the entire project
 */
public class CssStyle extends Application {
    private String yourCss = "YourResource.css";

    public CssStyle() {
        try {
            Application.setUserAgentStylesheet(getCss()); //null sets default style
        } catch (NullPointerException ex) {
            System.out.println(yourCss + " resource not found");
        }
    }

    private Button button = new Button("Button Text");
    private TextArea textArea = new TextArea("you text here");
    private ObservableList<String> listItems = FXCollections.observableArrayList("one", "two", "three");
    private ListView listView = new ListView<String>(listItems);
    private FlowPane root = new FlowPane(button, textArea, listView);
    private Scene scene = new Scene(root);

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    private String getCss() throws NullPointerException {
        ClassLoader classLoader = getClass().getClassLoader();
        URL resource = classLoader.getResource(yourCss);
        String asString = resource.toExternalForm(); //throws null
        return asString;
    }
}
于 2017-07-10T15:05:12.093 回答