JavaFX基本控件-Button
- 常用属性
- text
- padding
- alignment
- textAlignment
- width
- height
- tooltip
- border
- wrapText
- ellipsisString
- underline
- graphic
- graphicTextGap
- disable
- 实现方式
- Java实现
- fxml实现
常用属性
text
设置文本内容
button.setText("测试按钮");
padding
内边距
button.setPadding(new Insets(5, 10, 5, 10));
alignment
文本对齐方式,
单行
显示内容少的时候体现
button.setAlignment(Pos.CENTER);
textAlignment
文本对齐方式,在
多行
文本换行的时候着重体现
button.setTextAlignment(TextAlignment.LEFT);
width
button.setMinWidth(100);
button.setPrefWidth(100);
button.setMaxWidth(200);
height
button.setMinHeight(50);
button.setPrefHeight(50);
button.setMaxHeight(100);
tooltip
提示信息,鼠标放上去会给出一个提示
button.setTooltip(new Tooltip("测试Tooltip"));
border
设置边框
Border border = new Border(new BorderStroke(Paint.valueOf("red"), BorderStrokeStyle.SOLID, new CornerRadii(20), new BorderWidths(3)));
button.setBorder(border);
wrapText
设置是否自动换行
button.setWrapText(true);
ellipsisString
设置超长的省略号(自定义字符串)
button.setEllipsisString("^^^^^^");
underline
设置文本下划线
button.setUnderline(true);
graphic
按钮图标
button.setGraphic(new ImageView(new Image("icon.png")));
graphicTextGap
按钮上图标与文本之间的距离
button.setGraphicTextGap(20);
disable
设置是否禁用按钮
button.setDisable(true);
实现方式
Java实现
public static VBox demo1() {VBox vBox = new VBox();vBox.setPadding(new Insets(10, 10, 5, 20));Button button = build("按钮1-单行");button.setGraphic(new ImageView(new Image("icon.png")));button.setGraphicTextGap(20);button.setAlignment(Pos.CENTER_LEFT);button.setUnderline(true);vBox.getChildren().add(button);button = build("按钮2-多行测试-多行测试-多行测试-多行测试-多行测试-多行测试-多行测试-多行测试-多行测试-多行测试-多行测试-多行测试-多行测试-多行测试-多行测试");button.setWrapText(true);vBox.getChildren().add(button);button = build("按钮3-单行超长-单行超长-单行超长-单行超长-单行超长-单行超长-单行超长-单行超长-单行超长-单行超长-单行超长-单行超长-单行超长-单行超长-单行超长");button.setWrapText(false);button.setAlignment(Pos.CENTER_RIGHT);button.setDisable(true);vBox.getChildren().add(button);return vBox;}private static Button build(String text) {Button button = new Button();button.setBorder(new Border(new BorderStroke(Paint.valueOf("red"), BorderStrokeStyle.SOLID, new CornerRadii(20), new BorderWidths(3))));button.setPadding(new Insets(5, 10, 5, 10));button.setTooltip(new Tooltip(text + "Tooltip"));button.setText(text);button.setAlignment(Pos.CENTER_RIGHT);button.setTextAlignment(TextAlignment.RIGHT);button.setMinWidth(100);button.setPrefWidth(100);button.setMaxWidth(200);button.setMinHeight(50);button.setPrefHeight(50);button.setMaxHeight(100);button.setWrapText(true);button.setEllipsisString("^^^^^^");return button;}
fxml实现
<VBox prefHeight="400" prefWidth="600" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1"><children><Button alignment="CENTER" ellipsisString="^^^^^^" maxHeight="100" maxWidth="200" prefHeight="50"prefWidth="100"text="按钮1,测试一下换行数据,测试一下换行数据" textAlignment="RIGHT" textFill="#877f3a"underline="true" wrapText="true"><padding><Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/></padding><font><Font name="Arial Bold" size="14.0"/></font></Button><Button alignment="CENTER" ellipsisString="^^^^^^" maxHeight="100" maxWidth="200" prefHeight="50"prefWidth="100" text="按钮2" textAlignment="LEFT" textFill="#877f3a"underline="true" wrapText="false" disable="true"><padding><Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/></padding><font><Font name="Arial Bold" size="14.0"/></font></Button><Button alignment="CENTER" ellipsisString="^^^^^^" maxHeight="100" maxWidth="200" prefHeight="50"prefWidth="100" text="按钮3,单行超长测试,单行超长测试" textAlignment="LEFT" textFill="#877f3a"underline="true" wrapText="false" disable="true"><padding><Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/></padding><font><Font name="Arial Bold" size="14.0"/></font></Button></children>
</VBox>