java - jfreechart 中图表未显示但值发生变化?

标签 java jfreechart swingworker

friend 们,在我的应用程序中,我使用 swingworker 来生成 jfreechart 或者用于服务器计数器。为此,X、Y 轴上的值发生变化,但图表未显示。我的代码有问题吗?请 friend 们检查一下..

“x,y”轴中它显示浮点值,但从 HashMap 中实际检索的值是int。如果我正在使用,

Plot.getRangeAxis().setStandardTickUnits(NumberAxis.createIntegerTickUnits());

表示,在Y 轴上仅显示当前值,而不显示其附近的值。请 friend 解决两个问题。我的图形编码是,

   try
    {

        System.out.println("Graph Occur");

        MySQLClass.GraphLock=false;
        Panel1.removeAll();
        XYDataset Dataset;
        TimeSeries Series = new TimeSeries("Random Data");
        Second sec = new Second();
        ChartPanel CPanel;
        if(Operation_Combo.getSelectedItem().toString().equals("MySQL"))
        {
         if(MySQLClass.Map_MySql.get(""+MainWindow.SelectedNode+"").equals(null))
         {
             Value = 0;
         }
         else
         {
             Value = Integer.parseInt(MySQLClass.Map_MySql.get(""+MainWindow.SelectedNode+""));
         }
         System.out.println(Value);
        }
        if(Operation_Combo.getSelectedItem().toString().equals("SQL Server"))
        {
         if(SqlServerClass.Map_SQLServer.get(""+MainWindow.SelectedNode+"").equals(null))
         {
             Value = 0;
         }
         else
         {
             Value = Integer.parseInt(SqlServerClass.Map_SQLServer.get(""+MainWindow.SelectedNode+""));
         }
         System.out.println(Value);
        }
        String CounterName = MainWindow.SelectedNode.toString();
        Series.add(sec, Value);
        Dataset = new TimeSeriesCollection(Series);
        Chart = ChartFactory.createTimeSeriesChart(CounterName, "Time", "Range", Dataset, true, false, false);
        XYPlot Plot = (XYPlot)Chart.getPlot();
       // Plot.getRangeAxis().setStandardTickUnits(NumberAxis.createIntegerTickUnits());

        CPanel = new ChartPanel(Chart);
        Panel1.revalidate();
        Panel1.add(CPanel);
        Panel1.setBackground(Color.white);
        System.out.println("Chart Added");
        Panel1.validate();

        Thread.sleep(MainWindow.Intervel * 1000);
        System.out.println("Sleep="+(MainWindow.Intervel * 1000));
       CPanel.repaint();
        System.gc();
         if(Operation_Combo.getSelectedItem().toString().equals("MySQL"))
        {
        MySQLClass.SQLLock=true;
        new MySQLClass().execute();
        }
        if(Operation_Combo.getSelectedItem().toString().endsWith("SQL Server"))
        {
        SqlServerClass.SQLServerLock=true;
        new SqlServerClass().execute();
        }

    }

结果是,。

enter image description here

提前致谢。

最佳答案

您已创建包含单个数据项的数据集。如果将渲染器设置为在每个数据点显示形状,您将在图表中间看到一个项目。没有线,因为您至少需要连接两个数据点。

也许您在某个循环中调用此代码并期望看到多个项目...但在这种情况下,您不应该每次都创建新的数据集和新的图表。

关于java - jfreechart 中图表未显示但值发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20966205/

相关文章:

java - Swing ProgressBar 并不总是更新

Java 线程 - Swing 应用程序

java - 如何减少 JAXB 上下文开销?

java - 退出键退出全屏模式java

java - Java SwingWorker取消是合作的吗?

java - 图表,服务器端还是客户端?

java - jfreechart XYLineAndShaperanderer、XYDotRenderer 和 XYSplineRenderer 之间的代码差异?

java - Pollard rho 整数分解

JAVA - 我的下一个按钮无法正常工作,但它仅返回第一行 ID

java - 如何消除jfreechart上的标点符号