javafx动态刷新

javafx的实时更新linechart折线图x轴密集怎么处理

highcharts所有的图表除了饼图都有X轴和Y轴,默认情况下,x轴显示在图表的底部,y轴显示在左侧(多个y轴时可以是显示在左右两侧),通过设置chart.inverted = true 可以让x,y轴显示位置对调。 1、Axis Title 坐标轴标题。默认情况下,

javafx动态刷新

javaFX中TextField控件的内容不断更新

使用定时器

new Timeline(new KeyFrame(

        Duration.millis(2500),

        ae – doSomething()))

    .play();

2.Java有哪几种常见的实现动画的方法?

一: 用多线程播放一组图片, 实现动画片的效果; 类似于逐帧动画,每个图片是动画的一帧

二: 在awt/swing界面里, 可以使用paint方法,去绘制图形,然后用swing提供的Timer或者多线程技术,去刷新绘制的图形

三:在JavaFX里, 本身就支持动画,并且封装了很多动画效果可以直接使用,比如逐帧动画.缩放动画,渐变动画,旋转动画,位置动画等.

强烈推荐使用javaFX来实现动画, 因为javaFX是现代化的图形界面工具,具有简单,强大,组件丰富,跨平台,支持Html5, 支持表格, 支持动画等多种优势 

下面是一个javaFX绘制的动态表格

javaFX动态表格

javafx tableview与ObservableList进行数据双向绑定

TableView的数据填充,需要一个ObservableList。其中需要一个类来做数据填充。

下面看看我们数据填充的类:

复制代码代码如下:

import javafx.beans.property.SimpleDoubleProperty;

import javafx.beans.property.SimpleStringProperty;

/**

*

* @author wing

*/

public final class DownloadData {

private final SimpleStringProperty fileName = new SimpleStringProperty();

private final SimpleStringProperty status = new SimpleStringProperty();

private final SimpleStringProperty dlSpeed = new SimpleStringProperty();

private final SimpleDoubleProperty progress = new SimpleDoubleProperty();

private final SimpleStringProperty downloadSize = new SimpleStringProperty();

private final SimpleStringProperty dlPercent = new SimpleStringProperty();

private String uuid;

public DownloadData(String filename, double progress) {

setFileName(filename);

setProgress(progress);

}

public DownloadData(String status, String filename, String dlSpeed, double progress) {

setStatus(status);

setFileName(filename);

setDlSpeed(dlSpeed);

setProgress(progress);

}

/**

* @return the fileName

*/

public String getFileName() {

return fileName.get();

}

/**

* @param fileName the fileName to set

*/

public void setFileName(String fileName) {

this.fileName.set(fileName);

}

public SimpleStringProperty fileNameProperty(){

return fileName;

}

/**

* @return the status

*/

public String getStatus() {

return status.get();

}

/**

* @param status the statusto set

*/

public void setStatus(String status) {

this.status.set(status);

}

public SimpleStringProperty statusProperty(){

return status;

}

/**

* @return the String

*/

public String getDlSpeed() {

return dlSpeed.get();

}

/**

* @param dlSpeed the dlSpeed to set

*/

public void setDlSpeed(String dlSpeed) {

this.dlSpeed.set(dlSpeed);

}

public SimpleStringProperty dlSpeedProperty(){

return dlSpeed;

}

/**

* @return the progress

*/

public double getProgress() {

return progress.get();

}

/**

* @param progress the progress to set

*/

public void setProgress(double progress) {

this.progress.set(progress);

}

public SimpleDoubleProperty progressProperty(){

return progress;

}

public String getDownloadSize() {

return downloadSize.get();

}

public void setDownloadSize(String downloadSize) {

this.downloadSize.set(downloadSize);

}

public SimpleStringProperty downloadSizeProperty(){

return downloadSize;

}

public String getDlPercent() {

return dlPercent.get();

}

public void setDlPercent(String dlPercent) {

this.dlPercent.set(dlPercent);

}

public SimpleStringProperty dlPercentProperty(){

return dlPercent;

}

public String getUUID() {

return uuid;

}

public void setUUID(String uuid) {

this.uuid = uuid;

}

}

记住,用作数据填充的类,一定要用JavaFX的Property机制,可以进行数据绑定,这样在我们改变ObservableList的时候,TableView的数据才会实时刷新。

复制代码代码如下:

private final ObservableListDownloadData data

= FXCollections.observableArrayList();

ObservableListTableColumn observableList = mDownloadTable.getColumns();

observableList.get(0).setCellValueFactory(new PropertyValueFactory(“status”));

observableList.get(1).setCellValueFactory(new PropertyValueFactory(“fileName”));

observableList.get(2).setCellValueFactory(new PropertyValueFactory(“dlSpeed”));

observableList.get(3).setCellValueFactory(new PropertyValueFactory(“downloadSize”));

observableList.get(4).setCellValueFactory(new PropertyValueFactory(“progress”));

observableList.get(4).setCellFactory(ProgressBarTableCell.forTableColumn());

observableList.get(5).setCellValueFactory(new PropertyValueFactory(“dlPercent”));

mDownloadTable.setItems(data);

我们通过TableView.getColumns来获取TableView的所有列。

CellValueFactory指的是TableView每一列里填充的数据。我们这里简单的使用PropertyValueFacotry。后面的要对应你DownloadData中的Property属性名。

CellFactory我们可以指定TableView中某一个Cell的视图类型。大家可以看到我用到了个ProgressBar。

另外CellFactory,JavaFX中自带部分的CellFactory,详细的大家可以在javafx.scene.control.cell包中找到。

接着我们通过创建DownloadData,设置数据,并添加到ObservableList中即可。

JavaFX怎么实现局部刷新

其实就是启用一个线程,该线程循环地执行:

1.用nanoTime算出每帧的用时。

2.调用worker,并查看信号量。

3.如果信号量已被释放,那么通过Platform.runLater把renderer传递给JavaFx图形线程(执行完renderer后会释放信号量)。

4.回到第1步。

这个过程后台线程起主导作用,并且在把渲染任务交给图形线程后自己可以处理下一帧(即,图形处理当前帧,后台处理下一帧,这个过程可以并行,所以要注意)。

最后那个misfire只是改变了able,让线程自己退出。用完记得熄火。

注意把JavaFx与图形相关的操作放在renderer里。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月26日 04:05:43
下一篇 2024年3月26日 04:13:58

相关推荐

  • 黑客动态文案励志学习图片,黑客动态表情包

    关于青春的励志文案图片 1、青春励志 带字图片欣赏 1) 青春人的一生中最美好年岁。它是一个人的生命含苞待放的时期,生机勃发朝气蓬勃;它意味着进取,意味着上升,蕴含着巨大希望的未知数。 2、路是自己选的,所以即使以后会跌倒,会受伤,也都要学会自己承受,自己疗伤。我们都是这样,学会长大的。 3、翻脸不如翻身,生气不如争气。活着不是靠泪水博得同情,而是靠汗水赢得…

    2024年5月23日
    6000
  • linuxip动态获取,linux网卡动态获取ip

    linux下怎么获取当前能连上网的那个ip地址 1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。 在linux命令行下输入shell指令:ip addr eth0。 键盘按“回车键”运行shell指令,此时会查询到eth0网卡的ip地址。 2、首先在电脑中打开linux客户端,点击连接linux按钮。然后输入用户名,主机…

    2024年5月23日
    3700
  • java动态生成复选框,java复选框如何回显数据

    如何用javaScript实现复选框的联动? 很简单,给表格一个ID,ID=form1,再给个参数sty;e=display:none;然后JavaScript写 function open(){document.getElementById(form1).style.display=block} 在按钮上写JavaScript:open();好了,试试看。…

    2024年5月23日
    4100
  • javascript动态添中js文件,js文件加动态版本号问题

    如何在js中动态引入或加载js文件 1、项目中需要用到动态加载CSS 文件,整理了一下,顺便融合了动态加载JS 的功能写成了一个对象,先上代码:对象包含两个完全独立的方法,分别用来加载CSS 文件和JS 文件,参数均为欲加载的文件路径。 2、\x0d\x0a首先,在html中引入b.js,并在之后加入引用语句。必须注意,将要引入的Js文件代码放在下面。 3、…

    2024年5月22日
    4400
  • 黑客动态文案励志壁纸学习,黑客动态壁纸下载

    励志文案||山河湖海都会化作你来时的路。 当你克服了人生的艰难险阻,山河湖海都会化作你来时的路。 当你克服了人生的艰难险阻,山河湖海都会化作你来时的路。你本无意穿堂风,偏偏孤倨引山洪。 当你克服了人生的艰难险阻,山河湖海都会化作你来时的路。一个人至少拥有一个梦想,有一个理由去坚强。心若没有栖息的地方,到哪里都是在流浪。 壁纸文案手机壁纸文案(精选78句) 强…

    2024年5月22日
    4300
  • 黑客动态图片文案励志学习,黑客动态代码图

    关于学习励志的文案 励志文案学习(精选96句) 今天应做的事没有做,明天再早也是耽误了。 哪里有天才,我是把别人喝咖啡的功夫,都用在工作上的。 读书有三到,谓心到,眼到,口到。 应当记忆的不是结论,而是方法。 【通俗文案类】读书在于造成完全的人格。登高而招,臂非加长也,而见者远;顺风而呼,声非加疾也,而闻者彰。知识永远战胜愚昧。 你现在的付出,都会是一种沉淀…

    2024年5月22日
    4200
  • javafx二进制,java 二进制操作

    为什么脚本只有VB脚本和Java脚本,而没有C#脚本 不是翻译型的。也不要说脚本一定是翻译型的,如果你说脚本是翻译型的语言,那么C#无论如何都不可能是脚本,因为C#只能编译运行,不能翻译运行,VB才有可以翻译也可能编译。 vb 的存在原因:(1)熟悉和习惯用BASIC 语言的人喜欢vb。(2)vb 编译器比vc 编译器 便宜得多。不想写非常复杂的程序的人觉得…

    2024年5月21日
    3700
  • linux动态共享文件在哪,linux动态库 共享变量

    如何在Windows系统和Linux系统之间共享文件 具体如下:vbox安装增强功能;设置共享文件夹,选择好自己需要共享的文件夹;在linux中打开终端,输入命令:cd/mntmkdirsharemount-tvboxsfbak/mnt/share。 打开“文件资源管理器”,右键单击要共享的文件夹,然后选择“属性”。转到“共享”选项卡,然后单击“高级共享”。…

    2024年5月20日
    3500
  • 黑客动态心电图学习视频,动态心电图黑色导联位置

    动态心电图简介 1、动态心电图是通过贴在病人前胸的11个电极,将受检者24小时静息、活动以及立、卧、坐位等不同时间不同状态的心电波形,连续不断地记录于记录仪中,再将记录仪储存的资料输入 电脑 ,经过综合分析得出结论。 2、概述 动态心电图亦称活动心电图,是一种连续监测心电变化的曲线图。由于系美国物理学家霍特(Holter)的实验室于1957年首先研制的,故又…

    2024年5月20日
    3900
  • eclipsejavafx插件,eclipse javafx插件

    eclipse是用什么开发ui的 1、eclipse 使用的是 SWT和JFace 作为GUI库 你可以下载一个eclipse插件叫做Window Builder,这样就不需要手动写大量Java代码就可以绘制出比较好看的界面了。 2、eclipse是基于swt开发的,swt是用JNI实现了本地接口的Java封装,也就是说eclipse是平台相关的,要调用本地…

    2024年5月20日
    4500

发表回复

登录后才能评论



关注微信