基于javaFX的动态线性表创建

javaFX中文资料较少,不少网友由于这个原因学习缓慢,在这里我发表我的一些学习成果,供大家讨论学习。基于javaFX的动态线性表创建

下面来看一看几个效果图:

接下来来看看代码:

void check3_controller_show() {

    xAxis = new NumberAxis(0, 60, 5);

    final NumberAxis yAxis = new NumberAxis(160, 300, 10);

    final NumberAxis yAxis1 = new NumberAxis(160, 300, 10);

    yAxis1.setSide(Side.RIGHT);

    final LineChart<Number, Number> lc = new LineChart<Number, Number>(

            xAxis, yAxis);

    lc.setCreateSymbols(false);

    lc.setAnimated(false);

    lc.setLegendVisible(false);

    lc.setBlendMode(BlendMode.GREEN);

    lc.setTitle("U / T图");

    xAxis.setLabel("Time / S");

    xAxis.setForceZeroInRange(false);

    yAxis.setLabel("U /  V");

    xAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(xAxis, null,

            "s"));

    // add starting data

    lineChart_U = new XYChart.Series<Number, Number>();

     lineChart_U.getData().add(

            new XYChart.Data<Number, Number>(timeInHours, prevY));

    for (double m = 0; m < (60); m++) {

        nextTime();

        plotTime();

    }

    // create timeline to add new data every 60th of second

    animation = new Timeline();

    animation.getKeyFrames().add(

            new KeyFrame(Duration.millis(1000 / 100),

                    new EventHandler<ActionEvent>() {

                        @Override

                        public void handle(ActionEvent actionEvent) {

                            // 6 minutes data per frame

                            for (int count = 0; count < 6; count++) {

                                nextTime();

                                plotTime();

                            }

                        }

                    }));

    animation.setCycleCount(Animation.INDEFINITE);

    animation.play();

    lc.getData().add(lineChart_U);

    

    lc.setPrefSize(1000, 550);

    AnchorPane page = new AnchorPane(lc);

    page.setPrefSize(1000, 550);

    rootLayout.setCenter(page);

    stage.sizeToScene();

    stage.show();

}

private void plotTime() {

    if ((timeInHours % 1) == 0) {

        prevY=Math.random()*40+200;

        lineChart_U.getData().add(

                new XYChart.Data<Number, Number>(timeInHours, prevY));

        if (timeInHours > 60)

            lineChart_U.getData().remove(0);

        if (timeInHours > 59) {

            xAxis.setLowerBound(xAxis.getLowerBound() + 1);

            xAxis.setUpperBound(xAxis.getUpperBound() + 1);

        }

    }

}

private void nextTime() {

    if (minutes == 59) {

        hours++;

        minutes = 0;

    } else {

        minutes++;

    }

    timeInHours = hours + ((1d / 60d) * minutes);

}

时间: 2024-12-09 14:09:13

基于javaFX的动态线性表创建的相关文章

数据结构(三)——基于顺序存储结构的线性表

数据结构(三)--基于顺序存储结构的线性表 一.基于顺序存储结构的线性表实现 1.顺序存储的定义 线性表的顺序存储结构是用一段地址连续的存储单元依次存储线性表中的数据元素. 2.顺序存储结构的操作 使用一维数组实现顺序存储结构. template <typename T> class SeqList:public List<T> { protected: T* m_array;//顺序存储空间 int m_length;//当前线性表的长度 }; 一维顺序存储结构可以是原生数组或是

简单的动态线性表

头文件 #ifndef __TEST_H__ #define __TEST_H__ #include<stdio.h> #include<string.h> #include<assert.h> #include<malloc.h> #define MAX 3   //方便测试给一个小空间 typedef int datatype; typedef struct Seqlist {  datatype *_Array;  size_t _size;  siz

《线性表的总结---线性顺序表(静态,动态)---线性链表(动态)》

[静态顺序表的练习] /* 需求:创建一个静态的顺序表存放整数,大小为10,完成以下操作 1,输入6个整数,打印出顺序表中的内容,并显示表中剩余的空间个数. 2,在顺序表中的第3个位置插入元素0,打印输出顺序表中的内容,并显示表中剩余的空间个数. 3,再试图插入表中第11个位置整数0,程序提示超出范围. 4,删除表中第6个元素,打印出顺序表中的内容,并显示表中剩余的空间个数. */ /* #include<stdio.h> #define MaxSize 10 //想顺序表中插入元素 void

数据结构学习(一)、线性表

线性表的概述 线性表拥有零个或多个数据元素的有限序列.首先它是一个序列,也就是元素之间有顺序. 线性表分为静态线性表和动态线性表,常见的有顺序线性表(静态).单向链表(动态).双向链表(动态) 线性表抽象数据类型定义 ADT 线性表(List) Data 线性表的数据对象集合为{a1,a2,···,an},每个数据类型均为DataType.另外,除第一个元素外, 其他每个元素均只有一个直接的前驱,除最后一个元素外,其他每个元素均只有一个直接的后驱. Operation InitList(*L)

数据结构(03)_顺序存储结构线性表

本节我们基于前面实现的数据结构类模板基础,继续完成基于顺序存储结构的线性表的实现,话不多说,继承关系图如下: 14.线性表的本质和操作 14.1.线性表的表现形式 零个多多个数据元素组成的集合 数据元素在位置上是有序排列的 数据元素的个数是有限的 数据元素的类型必须相同 14.2.线性表的抽象定义.性质 线性表是具有相同类型的n(>=)个数据元素的有限序列,(a0, a1, a2... an-1),其中ai是表项,n是表长度.性质: a0为线性表的第一个元素,只有一个后继 an-1为线性表的最后

七、线性表的链式存储结构

1.问题引入 开发数组类模板的原因在于:在创建基于顺序存储结构的线性表时,发现这样的线性表可能被误用,因为重载了数组访问操作符,使用时跟数组类似,但是线性表和数组有很大的区别,所以激发了新的需求:开发数组类替换C++原生数组类,因为原生数组类也存在着很大缺陷,使用不方便. 基于顺序存储结构的线性表的另一个缺点:插入或删除元素时,涉及到大量数据元素的移动,对于效率的影响非常大 一个新的需求:在插入或删除元素时不需要大量移动数据元素的一种数据结构,即基于链式存储结构的线性表 2.链式结构的定义 为了

第21课 线性表的链式存储结构

1. 链式存储的特点 (1)为了表示每个数据元素与其直接后继元素之间的逻辑关系: (2)数据元素除了存储本身的信息外,还需要存储其直接后继的信息. (3)避免了顺序存储结构线性表在插入和删除元素时需要移动大量元素的问题. 2. 链式存储逻辑结构 (1)数据域:存储数据元素本身 (2)指针域:存储相邻结点地址 3. 链表中的基本概念 (1)头结点:链表中的辅助结点,包含指向第一个数据元素的指针 (2)数据结点:链表中代表数据元素的结点,表现形式为:(数据元素,地址) (3)尾结点:链表中的最后一个

五、顺序存储线性表分析

1.效率分析 采用大O表示法来进行效率分析 template<typename T> class SeqList : public List<T> { protected: T* m_array; // 线性表的存储空间,具体值在子类中实现 int m_length; // 当前线性表的长度 public: bool insert(int i, const T& e); // 最坏O(n),最好O(1) bool remove(int i); // O(n) bool se

数据结构之线性表再思考

数据结构学起来妙不可言,贼有意思. 很久没写博客了,今天来一篇长的.前面写的关于线性表的代码和思路,经过我多次反复思考,又有了新的收获,与大家一起分享. 1.线性表的定义 首先要明白什么是线性表,一种常用且最简单的数据结构. 数据结构通俗来说就是:装水的杯子,有的是圆的.有的是方的. 官方定义:线性表是n个数据元素的有限序列. 把这个样的一个数据模型映射到计算机,等同找一块存储空间给它,而线性表一般是申请动态内存,因此就是在堆上给它分配一块内存. 看下图 通过图我们可以了解到,线性表数据结构如何