在同一工作 JFrame 中绘制 org.knowm.xchart.XYChart

问题描述 投票:0回答:2

我想在同一工作 JFrame 中绘制 org.knowm.xchart.XYChart 数据,但下面的代码中没有任何反应:

        final XYChart chart = new XYChartBuilder()
                .height(jPanel1.getHeight())
                .width(jPanel1.getWidth())
                .title("test").xAxisTitle("X").yAxisTitle("Y").build();
        
        chart.getStyler().setDefaultSeriesRenderStyle(XYSeriesRenderStyle.Line);
        chart.getStyler().setLegendVisible(false);

        for (int i = 0; i < data.length; i++) {
            chart.addSeries(data[i], info, xyData[i]);
        }
        chart.getStyler().setMarkerSize(0);
        
       SwingUtilities.invokeLater(() -> {
           jPanel1 = new XChartPanel<>(chart);
           jPanel1.invalidate();
        });

jPanel1 锚定在 Jframe 的底部。 org.knowm.xchart.XYChart 的所有示例都在新窗口中显示图表。

java swing charts knowm-xchart
2个回答
0
投票

我认为你需要将他自己的面板添加到你的面板中;

JPanel chartPanel = new XChartPanel<XYChart>(chart);       
panel1.add(chartPanel);

它应该有效:)


0
投票

我尝试过这个,但没有成功。有人能给我一些建议吗?谢谢。

private void DrawButtonMouseClicked(java.awt.event.MouseEvent evt) {                                        
           
    int length=21;
    double[] xData = new double[length];
    double[] yData = new double[length];
           
    for (int i=0;i<(length);i++){
        xData[i]=2*Math.PI/20*i;
        yData[i]=Math.sin(xData[i]);
    }
                    
    // Create Chart
    XYChart chart = QuickChart.getChart("Sample Chart", "X", "Y", "y(x)", xData, yData);
    
    // Show it     
    XChartPanel chartPanel = new XChartPanel<>(chart);       
    MyPanel.add(chartPanel);     
          
}  
© www.soinside.com 2019 - 2024. All rights reserved.