java基础:10.4 Java FX之形状
发布日期:2022-04-04 06:36:34
浏览次数:2
分类:博客文章
本文共 3077 字,大约阅读时间需要 10 分钟。
JavaFX 提供了多种形状类,用于绘制文本、直线、圆、矩形、椭圆、孤、多边形以及折线。
Shape 类是一个抽象基类,定义了所有形状的共同属性。这些属性有fill、stroke,strokeWidth。
fill 属性指定一个填充形状内部区域的颜色。
Stroke 属性指定用于绘制形状边缘的颜色。
strokeWidth 属性指定形状边缘的宽度。
Shape的子类:
1、Text
Pane pane = new Pane(); Text text1 = new Text(20,20,"Java is interesting"); text1.setFont(Font.font("Courier",FontWeight.BOLD,FontPosture.ITALIC,15)); text1.setFill(Color.RED); text1.setUnderline(true); // underline text1.setStrikethrough(true); // strikethrough pane.getChildren().add(text1); Scene scene1 = new Scene(pane, 500, 500); // create a scene primaryStage.setTitle("ShowBorderdPane"); primaryStage.setScene(scene1); // place the scene in the stage primaryStage.show();
2、Line
1条直线通过4 个参数(startX、startY、endX 以及endY) 连接两个点.
//line Line line1 = new Line(70,70,120,120); Line line2 = new Line(70,120,120,70); // line1.endXProperty().bind(pane.widthProperty().divide(2)); // line1.endYProperty().bind(pane.heightProperty().divide(2)); line1.setStrokeWidth(5); line2.setStrokeWidth(5); line1.setStroke(Color.MEDIUMAQUAMARINE); line2.setStroke(Color.MEDIUMAQUAMARINE); pane.getChildren().addAll(line1,line2);
3、Rectangle
— 个矩形通过参数x、y、width、height、arcWidth 以及arcHeight 定义。矩形的左上角点处于(x,y), 参数aw(arcWidth) 表示圆角处弧的水平直径,ah(arcHeight)表示圆角处弧的垂直直径。
Rectangle r1 = new Rectangle(10,130,40,50); r1.setStroke(Color.TAN); r1.setFill(Color.WHITE); // r1.setFill(null); pane.getChildren().add(r1);
4、Circle Ellipse
Circle circle = new Circle(90,160,15); Ellipse ellipse = new Ellipse(160,160,20,10);
还有一些子类,例如Arc 一段弧,Polygon 多边形,Polyline 不会自动闭合的多点连线。
总程序如下:
public class MyJavaFX extends Application { @Override // Override the start method in the Application class public void start(Stage primaryStage) { //set a primary stage Pane pane = new Pane(); // text Text text1 = new Text(50,50,"Java is interesting"); text1.setFont(Font.font("Courier",FontWeight.BOLD,FontPosture.ITALIC,15)); text1.setFill(Color.RED); text1.setUnderline(true); // underline text1.setStrikethrough(true); // strikethrough //line Line line1 = new Line(70,70,120,120); Line line2 = new Line(70,120,120,70); // line1.endXProperty().bind(pane.widthProperty().divide(2)); // line1.endYProperty().bind(pane.heightProperty().divide(2)); line1.setStrokeWidth(5); line2.setStrokeWidth(5); line1.setStroke(Color.MEDIUMAQUAMARINE); line2.setStroke(Color.MEDIUMAQUAMARINE); // rectangle Rectangle r1 = new Rectangle(10,130,40,50); r1.setStroke(Color.TAN); r1.setFill(Color.WHITE); // r1.setFill(null); // circle Circle circle = new Circle(90,160,15); Ellipse ellipse = new Ellipse(160,160,20,10); pane.getChildren().addAll(text1,line1,line2,r1,circle,ellipse); Scene scene1 = new Scene(pane, 500, 500); // create a scene primaryStage.setTitle("ShowBorderdPane"); primaryStage.setScene(scene1); // place the scene in the stage primaryStage.show(); }}
转载地址:https://www.cnblogs.com/l20902/p/10610914.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年03月30日 23时41分30秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Visual Studio我常用的快捷键
2019-04-27
写C# dll供Unity调用
2019-04-27
Linux制作run安装包
2019-04-27
一分钟学会C#解析XML
2019-04-27
unity AssetBundle的资源管理
2019-04-27
【转】Unity中HideInInspector和SerializeField一起使用
2019-04-27
单例模板类
2019-04-27
Unity与java相互调用
2019-04-27
android截屏代码
2019-04-27
unity NGUI图文混排
2019-04-27
Unity项目优化
2019-04-27
Unity3D Shader 入门
2019-04-27
MSDK手Q邀请透传参数问题:url编解码与base64编解码
2019-04-27
svn提交的一个坑
2019-04-27
eclipse识别不了模拟器解决办法
2019-04-27
unity mesh合并
2019-04-27
谈谈类之间的关联关系与依赖关系
2019-04-27
unity5.x assetbundle打包和加载
2019-04-27
C#用正则表达式去匹配被双引号包起来的中文
2019-04-27