javafx canvas_JavaFX技巧1:可调整大小的Canvas

javafx canvas

在使用FlexGanttFX时,我不得不处理很多JavaFX Canvas节点。 我正在使用它在时间轴上呈现活动。 甘特图中的每一行都是一个Canvas节点。 用户可以选择单独调整每行的大小。 因此,我不得不找出调整画布大小的最佳方法,这种现成的方法无法调整大小。 下面的清单显示了如何完成此任务。



所需的主要步骤是:

  • 创建Canvas的子类。
  • 重写isResizable()方法并返回true。
  • 重写prefWidth()prefHeight()方法。 返回Canvas.getWidth()Canvas.getHeight()的值。
  • 将侦听器添加到“ 画布”的width和height属性中,以便在画布大小更改时触发重绘。
  • 将“画布”的width和height属性绑定到父窗格的width和height属性。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;/*** Tip 1: A canvas resizing itself to the size of*        the parent pane.*/
public class Tip1ResizableCanvas extends Application {class ResizableCanvas extends Canvas {public ResizableCanvas() {// Redraw canvas when size changes.widthProperty().addListener(evt -> draw());heightProperty().addListener(evt -> draw());}private void draw() {double width = getWidth();double height = getHeight();GraphicsContext gc = getGraphicsContext2D();gc.clearRect(0, 0, width, height);gc.setStroke(Color.RED);gc.strokeLine(0, 0, width, height);gc.strokeLine(0, height, width, 0);}@Overridepublic boolean isResizable() {return true;}@Overridepublic double prefWidth(double height) {return getWidth();}@Overridepublic double prefHeight(double width) {return getHeight();}}@Overridepublic void start(Stage stage) throws Exception {ResizableCanvas canvas = new ResizableCanvas();StackPane stackPane = new StackPane();stackPane.getChildren().add(canvas);// Bind canvas size to stack pane size.canvas.widthProperty().bind(stackPane.widthProperty());canvas.heightProperty().bind(stackPane.heightProperty());stage.setScene(new Scene(stackPane));stage.setTitle("Tip 1: Resizable Canvas");stage.show();}public static void main(String[] args) {launch(args);}
}

运行时,您应该看到以下内容:

bildschirmfoto-2014-04-10-um-11-30-31

翻译自: https://www.javacodegeeks.com/2014/04/javafx-tip-1-resizable-canvas.html

javafx canvas

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】国家开放大学2019年春季 0341-22T高级英语听力(2) 参考试题

试卷代码:0341 2018-2019学年度第二学期期末考试 高级英语听力(2)试题 2019年7月 注 意 事 项 一、将你的准考证号、学生证号、姓名及分校(工作站)名称填写在答题纸规定栏内。 考试结束后,把试卷和答题纸放…

linux 软件 名称 更新,linux软件版本管理命令update-alternatives使用详解

linux软件版本管理命令update-alternatives使用详解update-alternatives 命令用于处理linux系统中软件版本的切换,在各个linux发行版中均提供了该命令,命令参数略有区别,但大致是一样的。1、 注册软件以jdk为例,安装了jdk以后&…

物联网技术应用案例

物联网应用的真正价值远远不至于联网小工具和智能冰箱。物联网的不断发展下,物联网应用正在不断的帮公司提高效率,降低成本并推动收入的增长。 但是,虽然您可能会想到很多的比较典型的物联网应用方案,比如常见的工业自动化和农业中…

【渝粤教育】国家开放大学2019年春季 0736-22T烹饪工艺学(2) 参考试题

科目编号:[0736] 座位号 2018-2019学年度第二学期期末考试 烹饪工艺学(2) 试题 2019年 4 月 一、名词解释(本大题共5小题,每小题4分,共计20分) 1.热增耗 2.烧 3.上浆工…

【渝粤教育】国家开放大学2019年春季 1062文学英语赏析 参考试题

试卷代号:1062 2 0 1 9年春季学期期末统一考试 文学英语赏析试题 2019年7月 注意事项 一、将你的学号、姓名及分校(工作站)名称填写在答题纸的规定栏内。考试结束后,把试卷和答题纸放在桌上。试卷和答题纸均不得带出考场。监考人收…

工业级4G无线路由器有哪些特点如何选择

工业级4G无线路由器因其具性能高。传输速度快且数据处理能力强等这些比较突出的特点,在电力、交通、金融、工控等各大行业中都有着广泛的应用,并受到了人们高度推崇和青睐。那么,工业级4G无线路由器有那些的特点受到消费者的青睐呢&#xff1…

3分钟看懂工业交换机EMS试验和高低温测试

机子行不行,全靠试验评。上期IES6312的开箱视频中提到,我们该如何确定产品的稳定和可靠性,本期就是12口全千兆二层网管型工业以太网交换机系列测试视频,全视频一共做了4项试验:高低温测试、EMS试验三个(静电…

测试双打简介

在编写单元测试时,您会遇到许多协作者,并且他们都有非常特殊的行为,知道在正确的时间必须使用哪种测试两倍可以使您的生活更轻松。 假 第一个是Dummy对象,它是最简单的一个,Dummy只是您为满足构造函数而传递的对象&am…

NB-IoTDTU对比于3G/4G DTU的区别和优势

作为物联网领域的新兴技术,低功耗广域网技术NB-IOT自2016年问世以来,围绕着其开展的技术研发和市场布局也在高速的发展中。而曾占据历史舞台的传统的基于移动网络的3G/4G DTU也依然活跃在人们的眼中,那么新兴的NB-IOT DTU和3G/4G DTU有哪些区…

【渝粤教育】国家开放大学2019年春季 1161开放英语3 参考试题

科目编号:1161 座位号: 2018-2019学年第二学期期末考试 开放英语3 试题(闭卷) 2019年7月 I. 交际用语(共计10分,每小题 2分) 阅读下面的小对话,从A、B、C三个选项中选出一个能填入空白处的最佳选项, 并在答…

linux 中文ssid 显示,无法连接中文 SSID 的 Wi-Fi?简单几步就搞定!

忙里偷闲,今天把树莓派拿出来准备搞点事情,但发现宿舍的中文 SSID 无法被树莓派正确识别,变成了一堆 16 进制数:虽然如此,但我猜测只是显示上的问题,猜得出是哪个 Wi-Fi,剩下应该就没什么问题了…

安防专用交换机的应用介绍

安防专用交换机作为特别类型的交换机,最近几年,由于监控行业的迅速普及与应用,安防专用交换机开始迅速在安防领域内普及,使用数量急剧增加,为安防行业的发展,提供了强有力的源动力。那么,安防工业交换机的应…

ZigBee技术的应用和优势

ZigBee一词源自蜜蜂群在发现划分位置时,通过跳ZigZag形舞蹈来告知同伴,来达到交换信息的目的。可以说是一种小的低信息量的“无线"通信方式,人们也就借此称呼一种专注于低功耗,低成本、低复杂度、低速率的、低速率的近程无线…

【渝粤教育】国家开放大学2019年春季 1308外国文学专题 参考试题

试卷代号:1 308 2 0 1 9年春季学期期末统一考试 外国文学专题 试题(开卷) 2019年7月 一、选择题(请把下列作品的作者前的字母填在括号中。每题1分,共10分) 1.《四个四重奏》( ) A.乔…

linux 下 storm环境搭建,Storm在Ubuntu环境下的单机部署

Storm在Ubuntu环境下的单机部署目录查看Ubuntu安装JDK安装Pythod安装Zookeeper安装ZeroMQ安装Jzmp安装Storm查看Ubuntu是32位还是64uname -a返回结果 > SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux,可知Ubuntu为64位安装JDK#下载64位的JDKwget http:…

【渝粤教育】国家开放大学2019年春季 1398分析化学(本) 参考试题

试卷代号:1398 分析化学(本) 试题(开卷) 2019年7月 一、单项选择题(每题2分,共60分) 1.在定量分析中,精密度与准确度之间的关系是( )。 A.精密度高…

物联网中常见的传感器类型

物联网(IOT)是最近几年来最热门的技术流行语,它指的是:在收集、共享和分析数据,并从中创造价值。但如果没有准确数据,物联网也将成为一对无用的技术,因此,传感器和执行器的重要性使其…

杭州飞畅告诉你工业环网交换机到底是什么?

环网交换机是一种特殊的交换机,因为主流的环网交换机均为工业交换机,因此一般可以将其称为工业级环网交换机。那么,工业环网交换机到底是什么呢?接下来我们就跟随飞畅科技的小编一起来详细了解下吧! 环网,…

骆驼祥子大事件时间轴_骆驼中的事件处理

骆驼祥子大事件时间轴在上一篇有关骆驼-小水车的文章中,我介绍了骆驼-小水车的组件,并使用骆驼路线中的规则实现了一些简单的面向任务的过程。 今天,我将展示如何通过添加事件处理来扩展此示例。 那么如何描述一个事件呢? 每个事…

【渝粤教育】国家开放大学2019年春季 2205-22T开放英语2 参考试题

试卷代号:2205 2018—2019学年度第二学期期末考试 开放英语2试题 2019年7月 注 意 事 项一、将你的准考证号、学生证号、姓名及分校(工作站)名称填写在答题纸规定栏内。 考试结束后,把试卷和答题纸放在桌上。试题和答题纸均不得带…