JavaFX多线图和系列-缺少曲线

如何解决JavaFX多线图和系列-缺少曲线

我想在每个图表上绘制一个系列,最后将所有系列一起绘制在一个图表上,但没有成功。我正在寻求帮助。该代码简单明了。这是我的代码:

  1. 主类;

     public class TestChart extends Application {
    
       GenPlots genPlots =new GenPlots();
    
     @Override
     public void start(Stage primaryStage) {
         Button btn = new Button();
         btn.setText("Say 'Hello World'");
    
          btn.setOnAction(event -> {                         
             genPlots.GenPlots("Hello");
          });         
    
         StackPane root = new StackPane();
         root.getChildren().add(btn);        
         Scene scene = new Scene(root,200,250);
    
         primaryStage.setTitle("TestCharts");
         primaryStage.setScene(scene);
         primaryStage.show();
      }
    
       public static void main(String[] args) {
         launch(args);
       }
    }
    
  2. 该类旨在生成序列和图表:

    public class GenPlots {
    
     public GenPlots() {};
    
     Axis xAxis = new NumberAxis();
     Axis yAxis = new NumberAxis();
     LineChart<Number,Number> lineChart = new LineChart<Number,Number> 
     (xAxis,yAxis);   
     LineChart<Number,Number> lineChartMulti = new LineChart<Number,Number>(xAxis,yAxis); 
     String serName="*";
    
    // generate the linecharts
     public void GenPlots (String hello) {    
        lineChart.getData().clear();                  
        lineChartMulti.getData().clear();   
    
      for (int j=1; j<4;j++) {    
    
         XYChart.Series serSIF = new XYChart.Series();
    
         serSIF=getSeries();
    
         serName=String.valueOf(j);
         serSIF.setName("Only one "+serName);
    
         lineChart.getData().add(serSIF);
    
         displayChart(lineChart,serName);  
    
         lineChartMulti.getData().add(serSIF); 
       } 
    
      displayChart(lineChartMulti,serName+"All Series");  
    
      } // end method
    
     // get the series with values - sample
     public XYChart.Series getSeries()
        {
             double x=0.0;
             double fx=0.0;
             XYChart.Series serL = new XYChart.Series(); 
    
             for (int k=1; k<5;k++)
                 {                              
                     x=x+2;
                     fx=x*x*j;
                     serL.getData().add(new XYChart.Data(x,fx));                 
                 }             
              return serL;
       }   
    
        // plot the lineCharts
        public void displayChart( LineChart<Number,Number>lineChart,String  
        chartTitle ) 
          {
             Stage window = new Stage();
             window.initModality(Modality.NONE);  
             StackPane vb = new StackPane();         
             vb.setPadding(new Insets(20,20,20));
             lineChart.setTitle(chartTitle);
    
            vb.getChildren().add(lineChart);   
    
         Scene scene = new Scene(vb,500,600);
         window.setScene(scene);  
         window.show(); 
    
      } 
    
    } 
    

此外,所有系列的最后一个图均正确显示,但其他图(每个图表一个序列)失真或完全没有绘制。似乎每次生成线图时,该系列都会重置为null。我认为是由于该系列是可观察的,但我不知道如何解决此问题。请问您的贡献

解决方法

我找到了解决方案,对其他人可能有用: 将系列保存到ObservableList-
ObservableList > ser = FXCollections.observableArrayList(); 如果需要,不要清除系列本身,而是清除ObservableList。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-