箭头其实也是一种多边形,既然是多边形就可以用到javaFx中的一个类来制作,那就Polygon,它是javaFx提供的用于生成多边形的一个类。我们可以用点位来生成想要的多边形。
例如绘制箭头形状,数组中以“,”分割存了14个数字,两个一组,分别代表X,Y的坐标
// 绘制多边形的点位,一定要注意javaFx会根据点位顺序来绘图,别把顺序搞错了
Polygon po = new Polygon();
po.getPoints().addAll(new Double[]{
0.0, 100.0,
0.0, 150.0,
150.0, 150.0,
150.0, 175.0,
200.0, 125.0,
150.0, 75.0,
150.0, 100.0
});
完整代码如下:
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.shape.Polygon;
import javafx.stage.Stage;
import java.io.IOException;
/**
* 绘制箭头形状按钮
*/
public class Main extends Application {
public void start(Stage primaryStage) throws IOException {
Button button = new Button();
Polygon po = new Polygon();
// 绘制多边形的点位,一定要注意javaFx会根据点位顺序来绘图,别把顺序搞错了
po.getPoints().addAll(new Double[]{
0.0, 100.0,
0.0, 150.0,
150.0, 150.0,
150.0, 175.0,
200.0, 125.0,
150.0, 75.0,
150.0, 100.0
});
button.setShape(po);
button.setStyle("-fx-background-color:red");
button.setPrefSize(200, 100);
Group root = new Group();
root.getChildren().add(button);
Scene scene = new Scene(root, 800, 600);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
效果展示: