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();

}

}

java形状函数_java基础:10.4 Java FX之形状相关推荐

  1. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

  2. ie 访问 java接口_Java基础面试题 库(1~10)

    1.下列哪个说法是正确的() A    ConcurrentHashMap使用synchronized关键字保证线程安全 B    HashMap实现了Collction接口 C    Array.a ...

  3. java 必备_Java基础必备

    标签: 写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希 ...

  4. java数据类型_JAVA基础篇(数据类型)

    首先请大家想想这几个问题: 1.java数据类型是什么? 2.Java数据类型有什么用? 上一节(JAVA基础篇(函数))有个add函数,里面有两个int类型,int类型就是整数的意思,这一节我们来学 ...

  5. java基本命令_java基础篇 快捷键 常见Dos命令等等

    (一) 计算机基础介绍 (二) jdk 安装 (三) 环境变量介绍及配置 (四) HelloWorld 实现 一 . 计算机概述 (1) 计算机 计算机(computer)俗称电脑,是一种用于高速计算 ...

  6. java大全_Java基础知识大全(一)

    一.基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. java语言是跨平台,jvm不是跨平台的. J ...

  7. cmd运行java文件_Java基础 前传

    微信搜一搜秃然编程 一.关于MS-DOS MS-DOS(微软磁盘操作系统),是美国微软公司提供的磁盘操作系统.在美国微软公司推出Windows1.0.Windows3.0.1995年8月24日推出的操 ...

  8. java单线程循环调度_Java基础篇之Java线程模型

    原标题:Java基础篇之Java线程模型 Java运行系统在很多方面依赖于线程,所有的类库设计都考虑到多线程.实际上,Java使用线程来使整个环境异步.这有利于通过防止CPU循环的浪费来减少无效部分. ...

  9. java display.getdefault()_java基础(十一 )-----反射——Java高级开发必须懂的

    本文我们通过一个实际的例子来演示反射在编程中的应用,可能之前大家对反射的学习,仅仅是停留在概念层面,不知道反射究竟应用在哪,所以是一头雾水.相信通过这篇教程,会让你对反射有一个更深层次的认知. 概念 ...

最新文章

  1. Swift iOS : 字体图标
  2. netty发送数据_【Netty】JAVA IO模型
  3. 使用C#格式化字符串 1
  4. 20175208『Java程序设计』课程 结对编程练习_四则运算
  5. HTML中直接写js 函数
  6. 中科院博士整理的机器学习算法知识手册,完整 PDF 开放下载!
  7. 常用 Dos 命令+杂项-常用的命令符+常用的公式
  8. 语言题库安装包312mb_大学为什么要考取计算机二级,以后很需要,附二级Msoffice题库...
  9. Openlayer:学习笔记之图标与提示信息
  10. 二元信号探测的误检概率推导与其matlab验证
  11. 天黑时间跟经度还是纬度有关_时差由纬度还是经度决定
  12. flash builder 4.7 打开闪退解决办法
  13. 如何制作图书专用标签
  14. java 打印字母塔_打印字母塔
  15. FlexPaper pdf文档转换swf
  16. 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如 果该年没有举办世界杯,则输出:没有举办世界杯
  17. <数据结构>停车场管理系统,利用栈和队列实现,包含纯c语言版和C++版的全注释源码
  18. [Mybatis]复杂环境下的SQL
  19. Windows10虚拟机安装和使用教程
  20. 【小程序背景图之海贼王篇】

热门文章

  1. Python中如何查看(打印输出)变量的数据类型
  2. SQLALchemy (ORM工具)[PostgreSQL为例]
  3. keras的训练引擎:train_array.py和train_generator.py
  4. SQL语句关联查询,UNION ALL用法,结果中查询
  5. JavaScript 中的 this 与闭包详解
  6. 腾讯2020校园招聘后台开发面试编程题
  7. linux tomcat单机部署多应用
  8. Python实现查询12306火车票信息
  9. Python读取IRIS数据集并转换为PaddlePaddle中使用的reader
  10. 《机器学习实战》学习总结(三)朴素贝叶斯在文本分类的应用