在 JavaFX 中向按钮添加自定义 css
adding custom css to button in JavaFX
我正在尝试向我的按钮添加一些自定义 css,css 文件与我的 testButton.java 在同一文件夹中。这是我的 main/only class:
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 添加,但不知道为什么它根本没有改变。
您没有将带样式的按钮添加到 gridPane
。添加到窗格的唯一按钮是 jfoenixButton
,它没有 button-raised
class。
也可以将 class 添加到该按钮:
jfoenixButton.getStyleClass().add("button-raised");
或者将带样式的按钮添加到您的 gridPane:
gridPane.add(button, 1, 0);
其中一个选项应该可以解决您的问题。
您应该将 CSS 导入 GridPane
(使用 Scene Builder)以允许您使用 jfoenixButton.getStyleClass().add("button-raised");
我正在尝试向我的按钮添加一些自定义 css,css 文件与我的 testButton.java 在同一文件夹中。这是我的 main/only class:
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 添加,但不知道为什么它根本没有改变。
您没有将带样式的按钮添加到 gridPane
。添加到窗格的唯一按钮是 jfoenixButton
,它没有 button-raised
class。
也可以将 class 添加到该按钮:
jfoenixButton.getStyleClass().add("button-raised");
或者将带样式的按钮添加到您的 gridPane:
gridPane.add(button, 1, 0);
其中一个选项应该可以解决您的问题。
您应该将 CSS 导入 GridPane
(使用 Scene Builder)以允许您使用 jfoenixButton.getStyleClass().add("button-raised");