【问题标题】:adding custom css to button in JavaFX将自定义 CSS 添加到 JavaFX 中的按钮
【发布时间】:2019-03-10 15:06:43
【问题描述】:

我正在尝试向我的按钮添加一些自定义 css,该 css 文件与我的 testButton.java 位于同一文件夹中。这是我的主要/唯一课程:

import com.jfoenix.controls.JFXButton;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.HPos;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
import javafx.stage.Window;

public class testButton extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("Vulpix Skyen");

        GridPane gridPane = createRegistrationFormPane();

        addUIControls(gridPane);

        Scene scene = new Scene(gridPane, 800, 500);

        scene.getStylesheets().clear();
        scene.getStylesheets().add(getClass().getResource("test.css").toExternalForm());


        primaryStage.setScene(scene);
        primaryStage.show();
    }


    private GridPane createRegistrationFormPane() {

        GridPane gridPane = new GridPane();

        return gridPane;
    }

    private void addUIControls(GridPane gridPane) {

        JFXButton jfoenixButton = new JFXButton("JFoenix Button");
        JFXButton button = new JFXButton("Raised Button".toUpperCase());
        button.getStyleClass().add("button-raised");
        jfoenixButton.getStyleClass().add("button-raised");
        gridPane.add(jfoenixButton, 0, 0);
        gridPane.add(button, 1, 0);
    }

    public static void main(String[] args) {
        launch(args);
    }
}

这是css文件:

.button-raised {
    -fx-padding: 0.7em 0.57em;
    -fx-font-size: 140px;
    -jfx-button-type: raised;
    -fx-background-color: rgb(77, 102, 204);
    -fx-pref-width: 200;
    -fx-text-fill: ORANGE;
}

无论我更改什么,我的按钮都保持相同的默认样式。我没有特别想添加 css,但不知道为什么它根本没有改变。

【问题讨论】:

    标签: java javafx jfoenix


    【解决方案1】:

    您没有将样式按钮添加到gridPane。添加到窗格中的唯一按钮是jfoenixButton,它没有button-raised 类。

    也可以将类添加到该按钮:

    jfoenixButton.getStyleClass().add("button-raised");
    

    或者将样式按钮添加到您的 gridPane:

    gridPane.add(button, 1, 0);
    

    其中一个选项应该可以解决您的问题。

    【讨论】:

    • 哎呀,不知道我是怎么错过的,非常感谢您的帮助,它现在可以工作了
    【解决方案2】:

    您应该在 GridPane(使用 Scene Builder)中导入 CSS 以允许您使用 jfoenixButton.getStyleClass().add("button-raised");

    【讨论】:

      猜你喜欢
      • 2014-04-06
      • 1970-01-01
      • 2021-12-17
      • 2017-02-08
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 2014-07-29
      相关资源
      最近更新 更多