笔记记录

编写人:老王
时间:2023-04-5
地点:广州


  1. package javafx.test;
  2. import javafx.application.Application;
  3. import javafx.scene.Group;
  4. import javafx.scene.Scene;
  5. import javafx.scene.control.Button;
  6. import javafx.scene.text.Font;
  7. import javafx.stage.Stage;
  8. public class Main7 extends Application {
  9. public static void main(String[] args) {
  10. launch(args);
  11. }
  12. @Override
  13. public void start(Stage stage) throws Exception {
  14. Button button1 = new Button("这是按钮...");
  15. //按钮的坐标
  16. button1.setLayoutY(100);
  17. button1.setLayoutX(100);
  18. //按钮的宽高
  19. button1.setPrefHeight(200);
  20. button1.setPrefWidth(400);
  21. //自定义字体
  22. button1.setFont(Font.font("sans-serif",40));
  23. Group group = new Group();
  24. group.getChildren().add(button1);
  25. Scene scene = new Scene(group);
  26. stage.setScene(scene);
  27. stage.show();
  28. }
  29. }

效果如下:
图片.png接下来设置边框和圆角以及各种样式:

  1. package javafx.test;
  2. import javafx.application.Application;
  3. import javafx.geometry.Insets;
  4. import javafx.scene.Group;
  5. import javafx.scene.Scene;
  6. import javafx.scene.control.Button;
  7. import javafx.scene.layout.*;
  8. import javafx.scene.paint.Paint;
  9. import javafx.scene.text.Font;
  10. import javafx.stage.Stage;
  11. public class Main7 extends Application {
  12. public static void main(String[] args) {
  13. launch(args);
  14. }
  15. @Override
  16. public void start(Stage stage) throws Exception {
  17. Button button1 = new Button("这是按钮...");
  18. stage.setWidth(500);
  19. stage.setHeight(500);
  20. //按钮的坐标
  21. button1.setLayoutY(50);
  22. button1.setLayoutX(50);
  23. //按钮的宽高
  24. button1.setPrefHeight(200);
  25. button1.setPrefWidth(400);
  26. //自定义字体样式
  27. button1.setFont(Font.font("sans-serif",40));
  28. //自定义字体的颜色
  29. button1.setTextFill(Paint.valueOf("#CD0000"));
  30. //自定义背景
  31. //BackgroundFill类里的参数分别是颜色,圆角,边框和按钮的距离
  32. BackgroundFill bgf = new BackgroundFill(Paint.valueOf("#8FBC8F"),new CornerRadii(20),new Insets(20));
  33. Background bg = new Background(bgf);
  34. button1.setBackground(bg);
  35. //设置边框的类型。分别是颜色,边框的样式(实线,虚线,点线),边框圆角,变宽的宽度。
  36. BorderStroke bos = new BorderStroke(Paint.valueOf("#8A2BE2"),BorderStrokeStyle.DOTTED,new CornerRadii(20),new BorderWidths(10));
  37. Border bo = new Border(bos);
  38. button1.setBorder(bo);
  39. Group group = new Group();
  40. group.getChildren().add(button1);
  41. Scene scene = new Scene(group);
  42. stage.setScene(scene);
  43. stage.show();
  44. }
  45. }

图片.png当然啦,像上面这种方式去定义按钮和文字的样式非常麻烦,需要一个一个的去设置,其实还有一个更简单的方法,那就是用javafx的CSS样式去设置按钮及其文字的样式,如下:
https://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html#typefont
图片.png

  1. button1.setStyle(
  2. "-fx-background-color: #ff6347;"+
  3. "-fx-font-family:sans-serif;"+
  4. "-fx-font-size:50;"+
  5. "-fx-font-style:italic;"+
  6. "-fx-font-weight:800;"+
  7. //字体颜色
  8. "-fx-text-fill:#5CACEE;"+
  9. //圆角
  10. "-fx-background-radius:20;");

图片.png