一、效果图
二、核心代码
@Override public void start(Stage stage) throws IOException { //初始化布局类 Pane pane = new Pane(); //设置文字位置大小 Text text = new Text(); text.setX(85.0f); text.setY(150.0f); text.setCache(true); text.setText("中秋快乐"); text.setFill(Color.RED); text.setFont(Font.font(null, FontWeight.BOLD, 30)); //边界布局容器初始化 BorderPane bpane = new BorderPane(); //绘制月饼主题 Circle circle = new Circle(150, 150, 120); circle.setStroke(Color.ORANGE); circle.setFill(Color.ORANGE); pane.getChildren().add(circle); int size=30; //绘制月饼边缘 for (int i = 0; i < size; i++) { Circle tem = new Circle(150+120*(Math.sin(360/size*i)), 150+120*(Math.cos(360/size*i)), size); tem.setStroke(Color.ORANGE); tem.setFill(Color.ORANGE); pane.getChildren().add(tem); } pane.setStyle("-fx-background-color:white; -fx-border-color:black"); //加入文字 pane.getChildren().add(text); //初始化场景并设置大小 Scene scene = new Scene(bpane, 300, 300); bpane.setCenter(pane); //设置窗口类名称 stage.setTitle("中秋快乐"); //设置窗口类展示场景 stage.setScene(scene); stage.show(); }
三、实现过程
使用IDEA新建一个JavaFX项目
不选择其他库,下一步
覆盖启动类的 start(Stage stage)方法即可。
package com.example.javafx2; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.fxml.FXMLLoader; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.scene.paint.Color; import javafx.scene.shape.Circle; import javafx.scene.text.Font; import javafx.scene.text.FontWeight; import javafx.scene.text.Text; import javafx.stage.Stage; import java.io.IOException; public class HelloApplication extends Application { @Override public void start(Stage stage) throws IOException { //初始化布局类 Pane pane = new Pane(); //设置文字位置大小 Text text = new Text(); text.setX(85.0f); text.setY(150.0f); text.setCache(true); text.setText("中秋快乐"); text.setFill(Color.RED); text.setFont(Font.font(null, FontWeight.BOLD, 30)); //边界布局容器初始化 BorderPane bpane = new BorderPane(); //绘制月饼主题 Circle circle = new Circle(150, 150, 120); circle.setStroke(Color.ORANGE); circle.setFill(Color.ORANGE); pane.getChildren().add(circle); int size=30; //绘制月饼边缘 for (int i = 0; i < size; i++) { Circle tem = new Circle(150+120*(Math.sin(360/size*i)), 150+120*(Math.cos(360/size*i)), size); tem.setStroke(Color.ORANGE); tem.setFill(Color.ORANGE); pane.getChildren().add(tem); } pane.setStyle("-fx-background-color:white; -fx-border-color:black"); //加入文字 pane.getChildren().add(text); //初始化场景并设置大小 Scene scene = new Scene(bpane, 300, 300); bpane.setCenter(pane); //设置窗口类名称 stage.setTitle("中秋快乐"); //设置窗口类展示场景 stage.setScene(scene); stage.show(); } public static void main(String[] args) { launch(); } }
快来试试吧