说明
本文记录一下对Button的基本使用,包括但不限于 样式的设置,事件的监听等。
按钮样式的设置
方式一 : Java代码的方式
// 创建一个按钮
Button button = new Button("按钮");
// 设置按钮的位置
button.setLayoutX(50);
button.setLayoutY(100);
// 设置按钮的大小
button.setPrefWidth(200);
button.setPrefHeight(50);
// 设置文本的字体格式和大小
button.setFont(Font.font("Arial", 40));
// 设置按钮的文本颜色
button.setTextFill(Paint.valueOf("#ff0000"));
// 使用Java Property 的方式设置按钮的背景颜色、圆角、内边距的大小
BackgroundFill bgf = new BackgroundFill(Paint.valueOf("#00ff00"),new CornerRadii(20), new Insets(6));
Background bg = new Background(bgf);
button.setBackground(bg);
方式二:css 内联样式的方式
// 创建一个按钮
Button button = new Button("按钮");
// 设置按钮的位置
button.setLayoutX(50);
button.setLayoutY(100);
// 设置按钮的大小
button.setPrefWidth(200);
button.setPrefHeight(50);
// 使用css 的方式设置按钮的背景颜色、圆角、内边距的大小
// 设置样式
button.setStyle(
"-fx-background-color: #1E90FF; " + // 背景颜色(天蓝色)
"-fx-background-radius: 10px; " +// 背景圆角
"-fx-text-fill: white; " + // 文字颜色(白色)
"-fx-font-size: 16px; " + // 字体大小
"-fx-font-family: 'Arial'; " + // 字体
"-fx-border-color: #00008B; " + // 边框颜色(海军蓝)
"-fx-border-width: 2px; " + // 边框宽度
"-fx-border-style: dashed; " + // 边框样式(虚线)
"-fx-border-radius: 10px; " + // 边框圆角
"-fx-padding: 30px; " + // 内边距 : 内容与背景的内边距(水平和垂直)
"-fx-background-insets: 5px;" + // 背景的内边距 : 向内缩进去
"-fx-border-insets: -5px;" // 边框的内边距 : 向外扩展出去
);
设置鼠标进入时显示小手
// 设置鼠标的样式 : 鼠标进入的时候显示小手状
button.setCursor(Cursor.HAND);
监听单击事件
// 设置按钮的单击事件
button.setOnAction(event -> {
System.out.println("event = " + event);
System.out.println("按钮被点击了");
});
实现监听双击
根据
点击的次数
判断是否是双击。
// 实现鼠标的双击事件 1 : 使用JavaFX 的事件处理机制
button.setOnMouseClicked(event -> {
if (event.getClickCount() == 2 && event.getButton().name().equals(MouseButton.PRIMARY.name())){
System.out.println("双击了");
}
});
// 实现鼠标的双击事件 2 : 使用JavaFX 的事件处理机制
button.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> {
if (event.getClickCount() == 2 && event.getButton().name().equals(MouseButton.PRIMARY.name())){
System.out.println("双击了22");
}
});
运行结果:
双击了22
双击了
实现监听键盘事件
// 监听键盘事件
button.setOnKeyPressed(event -> {
System.out.println("按下了键盘1 : "+event.getCode() + " : "+event.getCode().getName()+" : "+event.getText());
});
button.setOnKeyReleased(event -> {
System.out.println("松开了键盘"+event.getCode());
});
button.setOnKeyTyped(event -> {
System.out.println("按下了键盘2"+event.getCode().name());
});