Java Swing图没有';t显示

Java Swing图没有';t显示,java,swing,Java,Swing,我试图读取一个CSV文件并根据它绘制一个图表。但是,当框架显示时,它是空的。知道我哪里出错了吗 import java.awt.Graphics; import java.awt.Polygon; import java.awt.Color; import javax.swing.*; import java.io.*; import java.util.Scanner; public class Poly extends JPanel { int time[]=new int[10000

我试图读取一个CSV文件并根据它绘制一个图表。但是,当框架显示时,它是空的。知道我哪里出错了吗

import java.awt.Graphics;
import java.awt.Polygon;
import java.awt.Color;
import javax.swing.*;
import java.io.*;
import java.util.Scanner;


public class Poly extends JPanel
{
 int time[]=new int[10000];
 int generated[]=new int[10000];

public void paintComponent( Graphics g )
{
    super.paintComponent( g ); 
    // Draw a Polygone
    //int xValues[] = { 20, 40, 50, 30, 20, 15 };
    //int yValues[] = { 50, 50, 60, 80, 80, 60 };
    //Polygon polygon1 = new Polygon( xValues, yValues, 6 );
    //g.drawPolygon( polygon1 );                            
    // Draw a Polyline
    //int xValues2[] = { 70, 90, 100, 80, 70, 65, 60 };
    //int yValues2[] = { 100, 100, 110, 110, 130, 110, 90 };
    g.setColor(Color.RED);
    g.drawPolyline( time, generated, 10000 );              
}

public void run()
{
    String csvFile = "VaryHarvesterSize_VaryEnergyBufferMax_InputFile(64050KPIT2011_AllYear.dat.keep).csv";
    String line = "";
    String cvsSplitBy = ",";
    int k=0;

    try
    {
        File summaryFile=new File(csvFile);
        Scanner reader = new Scanner(summaryFile);
        reader.nextLine();

        //System.out.println(reader.nextLine());
        while(k<10000)
        {
            // use comma as separator
            line = reader.nextLine();
            String[] record = line.split(cvsSplitBy);
            double temp=Double.parseDouble(record[0].trim());
    time[k]=(int)temp;
            temp = Double.parseDouble(record[3].trim());
    generated[k]=(int)temp;
            //System.out.println(record);
            //System.out.println("Time="+time[k]+" Energy="+generated[k]);
            k++;

        }
    }

    catch(Exception e)
    {

        e.printStackTrace();
    }



}


public static void main (String[] args)
{
    Poly obj=new Poly();
    obj.run();


    JFrame frame=new JFrame("Polygone And Polyline")   ;
    JPanel policePanel=new Poly();
    frame.add(policePanel);
    frame.setSize(400,400);
    frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
    frame.setVisible(true);
}
}
导入java.awt.Graphics;
导入java.awt.Polygon;
导入java.awt.Color;
导入javax.swing.*;
导入java.io.*;
导入java.util.Scanner;
公共类Poly-JPanel
{
整数时间[]=新整数[10000];
生成的整数[]=新整数[10000];
公共组件(图形g)
{
超级组件(g);
//画一字
//int xValues[]={20,40,50,30,20,15};
//int-y值[]={50,50,60,80,80,60};
//多边形多边形1=新多边形(X值,Y值,6);
//g、 多角形(polygon1);
//绘制多段线
//int xValues2[]={70,90,100,80,70,65,60};
//int-yValues2[]={100,100,110,110,130,110,90};
g、 setColor(Color.RED);
g、 drawPolyline(时间,生成,10000);
}
公开募捐
{
字符串csvFile=“varyharvesterise\u VaryEnergyBufferMax\u InputFile(64050KPIT2011\u AllYear.dat.keep).csv”;
字符串行=”;
字符串cvsSplitBy=“,”;
int k=0;
尝试
{
文件摘要文件=新文件(csvFile);
扫描仪阅读器=新扫描仪(汇总文件);
reader.nextLine();
//System.out.println(reader.nextLine());
while(k
在这里,您正在向框架中添加一个新面板。但是在此之前,您已在另一个Poly实例上调用了run。这意味着数据正在另一个实例中填充,而您尚未将其添加到框架中。相反,请在该实例上调用“run”,它应该可以工作。

1)要更快获得更好的帮助,请发布(最小完整可验证示例)或者(简短、独立、正确的示例)。硬编码一些数据以替换CSV。2)源代码中只需要一行空白。
{
之后或
}
之前的空行通常也是多余的。
JPanel policePanel=new Poly();
    frame.add(policePanel);