#### 代码
public class ButtonSample extends Application {
private static final Color color = Color.web("#464646");
Button button3 = new Button("Decline");
DropShadow shadow = new DropShadow();
Label label = new Label();
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) {
Scene scene = new Scene(new Group());
stage.setTitle("Button Sample");
stage.setWidth(300);
stage.setHeight(190);
scene.getStylesheets().add(getClass().getResource("ControlStyle.css").toExternalForm());
label.setFont(Font.font("Times New Roman", 22));
label.setTextFill(color);
Image imageDecline = new Image(getClass().getResourceAsStream("not.png"));
Image imageAccept = new Image(getClass().getResourceAsStream("ok.png"));
VBox vbox = new VBox();
vbox.setLayoutX(20);
vbox.setLayoutY(20);
//HBox即水平的布局,将组件按水平方向依次排列
//VBox中的V是Vertical的首字母,意为垂直的。VBox即垂直的布局,将组件按竖直方向依次排列。
HBox hbox1 = new HBox();
HBox hbox2 = new HBox();
//当为按钮同时设置了文本和图形内容时,可以使用 setGraphicTextGap 方法来设置它们之间的间距。
Button button1 = new Button("Accept", new ImageView(imageAccept));
//为 Button 设置样式
button1.getStyleClass().add("button1");
// button1.setCancelButton(true);
// button1.setDisable(true);
button1.setOnAction((ActionEvent e) -> {
label.setText("Accepted");
System.out.println("====");
});
Button button2 = new Button("Accept");
button2.setOnAction((ActionEvent e) -> {
label.setText("Accepted");
});
button3.setOnAction((ActionEvent e) -> {
label.setText("Declined");
});
button3.addEventHandler(MouseEvent.MOUSE_ENTERED, (MouseEvent e) -> {
// 添加阴影效果
button3.setEffect(shadow);
});
button3.addEventHandler(MouseEvent.MOUSE_EXITED, (MouseEvent e) -> {
button3.setEffect(null);
});
hbox1.getChildren().add(button2);
hbox1.getChildren().add(button3);
hbox1.getChildren().add(label);
//各个子组件间的距离
hbox1.setSpacing(10);
hbox1.setAlignment(Pos.BOTTOM_CENTER);
Button button4 = new Button();
button4.setGraphic(new ImageView(imageAccept));
button4.setOnAction((ActionEvent e) -> {
label.setText("Accepted");
});
Button button5 = new Button();
button5.setGraphic(new ImageView(imageDecline));
button5.setOnAction((ActionEvent e) -> {
label.setText("Declined");
});
hbox2.getChildren().add(button4);
hbox2.getChildren().add(button5);
hbox2.setSpacing(25);
vbox.getChildren().add(button1);
vbox.getChildren().add(hbox1);
vbox.getChildren().add(hbox2);
vbox.setSpacing(10);
((Group) scene.getRoot()).getChildren().add(vbox);
stage.setScene(scene);
stage.show();
}
}
ControlStyle.css
.button1 { -fx-font: 22 arial; -fx-base: #b6e7c9; }