JavaFX教程 - JavaFX线

为了在JavaFX场景上渲染图形,我们需要基本的形状和颜色。

Node类是所有JavaFX场景图形节点的基本基类。它提供了转换,翻译和应用效果到任何节点的能力。

javafx.scene.shape.Shape类是Node类的后代。

所有较旧的JavaFX 2.x Builder类在JavaFX 8中已弃用。

JavaFX线

当在JavaFX场景图形上绘制时,使用屏幕坐标空间(系统)渲染线。

屏幕坐标系将(0,0)放在左上角。

x坐标沿x轴移动点。从上到下移动点时,y坐标值增加。

下图显示了右侧的屏幕坐标系。

在JavaFX中,场景图形对象(如线,圆和矩形)是Shape类的派生类。

所有形状对象可以在两个成形区域之间执行几何操作,例如减法,相交和并集。

要在JavaFX中绘制线条,我们将使用javafx.scene.shape.Line类。

要创建一个Line对象,我们需要指定一个开始(x,y)坐标和结束坐标。

创建线节点时,有两种方法来设置起点和终点。

第一种方法使用具有参数startX,startY,endX和endY的构造函数所有参数的数据类型为double。

以下代码使用构造函数创建具有起点(100,10)和终点(10,110)的线。

Line line = new Line(100, 10, 10, 110);

创建行节点的第二种方法是使用空构造函数来实例化Line类,然后使用setter方法设置每个属性。

以下代码显示如何创建线对象和使用setter方法设置行的起点和终点。

Line line = new Line();

line.setStartX(100);

line.setStartY(10);

line.setEndX(10);

line.setEndY(110);

在场景图上绘制的线节点默认为1.0的笔触宽度和黑色的笔触颜色。

所有形状的笔触颜色都为null,这意味着除了Line,Polyline和Path节点之外没有颜色。

要创建不同种类的线,我们可以设置属性继承自父类javafx.scene.shape.Shape的属性。

下表显示了我们可以在一行上设置的属性。

要检索或修改每个属性,您将使用其适当的getter和setter方法。

属性

数据类型 / 说明

fill

javafx.scene.paint.Paint

用于填充形状内的颜色。

smooth

Boolean

True表示打开反锯齿,false表示关闭反锯齿。

strokeDashOffset

Double

将距离设置为虚线图案。

strokeLineCap

javafx.scene.shape.StrokeLineCap

在线或路径的末尾设置帽样式。有三种样式:

StrokeLineCap.BUTT

StrokeLineCap.ROUND

StrokeLineCap.SQUARE

strokeLineJoin

javafx.scene.shape.StrokeLineJoin

当线相遇时设置装饰。有三种类型:

StrokeLineJoin.MITER

StrokeLineJoin.BEVEL

StrokeLineJoin.ROUND

strokeMiterLimit

Double

设置斜角接缝的限制以及斜角接缝装饰StrokeLineJoin.MITER。

stroke

javafx.scene.paint.Paint

设置形状的笔划线的颜色。

strokeType

javafx.scene.shape.StrokeType

设置在Shape节点的边界周围绘制描边的位置。有三种类型:

StrokeType.CENTERED

StrokeType.INSIDE

StrokeType.OUTSIDE

strokeWidth

Double

设置线的宽度。

例子

以下代码创建一个Line对象,并使用setter方法设置开始和结束坐标。

import javafx.application.Application;

import javafx.scene.Scene;

import javafx.scene.layout.VBox;

import javafx.scene.shape.Line;

import javafx.stage.Stage;

public class Main extends Application {

@Override

public void start(Stage stage) {

VBox box = new VBox();

final Scene scene = new Scene(box,300, 250);

scene.setFill(null);

Line line = new Line();

line.setStartX(0.0f);

line.setStartY(0.0f);

line.setEndX(100.0f);

line.setEndY(100.0f);

box.getChildren().add(line);

stage.setScene(scene);

stage.show();

}

public static void main(String[] args) {

launch(args);

}

}

上面的代码生成以下结果。

例2

以下代码设置更多的线属性,包括笔触颜色,笔触宽度和线帽。

之后,它还设置了线的破折号样式。

import javafx.application.Application;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.scene.paint.Color;

import javafx.scene.shape.Line;

import javafx.scene.shape.StrokeLineCap;

import javafx.stage.Stage;

public class Main extends Application {

@Override

public void start(Stage primaryStage) {

primaryStage.setTitle("Drawing Lines");

Group root = new Group();

Scene scene = new Scene(root, 300, 150, Color.GRAY);

Line redLine = new Line(10, 10, 200, 10);

redLine.setStroke(Color.RED);

redLine.setStrokeWidth(10);

redLine.setStrokeLineCap(StrokeLineCap.BUTT);

redLine.getStrokeDashArray().addAll(15d, 5d, 15d, 15d, 20d);

redLine.setStrokeDashOffset(10);

root.getChildren().add(redLine);

primaryStage.setScene(scene);

primaryStage.show();

}

public static void main(String[] args) {

launch(args);

}

}

上面的代码生成以下结果。

w3school没有java的教程_javafx w3school教程相关推荐

  1. HTML快速自学教程(W3school教程精简)

    HTML快速自学教程 前言 快开学了,下学期本人想学一点前端的技术,找了些关于前端的入门学习路线,准备以HTML ,CSS,Javascript ,Vue框架这个顺序入门一下,日拱一卒,故将学习过程写 ...

  2. Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并处理异常

    Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并处理异常 参考文章: (1)Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并 ...

  3. 面试时,当你有权提问时,别客气,这是个逆转的好机会(内容摘自Java Web轻量级开发面试教程)...

    前些天,我在博客园里写了篇文章,如何在面试中介绍自己的项目经验,收获了2千多个点击,这无疑鼓舞了我继续分享的热情,今天我来分享另外一个面试中的甚至可以帮助大家逆转的技巧,本文来是从 java web轻 ...

  4. java求职攻略_2020年求职攻略 《Java面试连成诀》教程免费分享

    原标题:2020年求职攻略 <Java面试连成诀>教程免费分享 IT行业薪资高.就业好.发展前景广阔,而面试是我们打开事业大门的第一关.技术的革新以及IT从业者增多加大了市场竞争,面试中问 ...

  5. 根据实践经验,讲述些学习Java web能少走的弯路,内容摘自java web轻量级开发面试教程...

    在和不少比较上进的初级程序员打交道的过程中,我们总结出了一些能帮到合格程序员尽快进阶的经验,从总体上来讲,多学.多实践不吃亏.本文来是从 java web轻量级开发面试教程从摘录的. 1  哪些知识点 ...

  6. java web轻量级开发面试教程内容精粹:哪些简历得不到面试机会

    看到一本较好的实践性比较强的书,java web轻量级开发面试教程,里面的一些内容很有实践意义. 问题点 很难获得面试机会的原因 学历不符,比如要求是本科以上,但学历是大专 学历是硬指标,所以达不到学 ...

  7. Java 13 的下载安装教程

    Java 13 的下载安装教程 说明: 本文介绍的是 Windows 下安装 Java 的方法.对于 Linux 下 Java 的安装,可见笔者的另一篇博客: 在 Linux 操作系统中安装 Java ...

  8. 5W字高质量java并发系列详解教程(上)-附PDF下载

    文章目录 第一章 java.util.concurrent简介 主要的组件 Executor ExecutorService ScheduledExecutorService Future Count ...

  9. java.util.logging.Logger基础教程

    java.util.logging.Logger基础教程 @(JAVA)[java] 从JDK1.4开始即引入与日志相关的类java.util.logging.Logger,但由于Log4J的存在,一 ...

最新文章

  1. 解决安装centos 7后Windows启动项丢失
  2. format 转化时间格式不起作用
  3. vim-快捷键一览表
  4. 可爱的 Python: 使用 mechanize 和 Beautiful Soup 轻松收集 Web 数据
  5. java 参数值_Java中的参数传值方式
  6. solr返回的字段带有中括号问题
  7. Excel 只需要几秒钟就可以解决大问题的好技巧
  8. 本地数据库_干货|本地数据库调用的实现案例
  9. springMVC的url重写
  10. 微信小程序列表页跳转到详情页
  11. SSM汽车销售平台的设计与实现毕业设计源码171619
  12. gitbook结合github写书及发布到gitbook上
  13. 《我的青春谁做主》剧中人物星座分析
  14. 图扑数字孪生军演,构建跨域作战体系
  15. Thread.interrupted()与Thread.currentThread().isInterrupted()区别
  16. [2020.1.1]2020第一个blog哟~~~一套RGB分体水冷攒机单
  17. 国内外遥感卫星整理汇总
  18. spring源码分析02-spring生命周期源码解析
  19. dhu 数据科学与技术 第2次作业
  20. 自制操作系统-最简单的系统hello World

热门文章

  1. 数字孪生技术结合大数据创建智慧城市体系架构
  2. Ubuntu添加/删除PPA源
  3. 江苏大学计算机与通信工程学院宿舍,江苏大学计算机科学与通信工程学院
  4. 请求大佬们帮我找下问题
  5. MFC界面库BCGControlBar v33.0 - Docking Pane、仪表盘组件升级
  6. 计算机网络期末复习考点
  7. 2023最新仿挖片自适应电影模板源码+苹果CMS10内核开发
  8. 如何彻底卸载绿盟终端DLP
  9. 扶持初创企业成长 佳能再度携手优客工场升级轻松办公新体验
  10. 九大数据可视化利器,你有足球竞猜平台源码下载在使用吗?