问错误加载drawline

时间:2015-09-18 16:44:47

标签: java mysql swing

我想从数据库创建程序加载行。我一直在使用double在每个协调设置数据库。但是当我尝试从数据库加载并且想要在jpanel中绘制时它得到错误它没有出现在我的jpanel.how中修复它?这是我的代码。

    ArrayList<Shape> linesList = new ArrayList<Shape>();
    shape line = null;

    public void loadline(){
        while (rs.next()) {
            double x1 = rs.getDouble("coorX");     //getting coordinate
            double y1 = rs.getDouble("coorY");
            double x2 = rs.getDouble("coorX2");
            double y2 = rs.getDouble("coorY2");
           line =new Line2D.Double(x1,y1,x2,y2);
           linesList.add(line);
        repaint();
        revalidate();
        }
    }catch(Exception E){
JOptionPane.showMessageDialog(null, "error load data");
}
    }catch(Exception e){
        JOptionPane.showMessageDialog(null, "error sql");

    }}

这是我的绘画组件方法

 protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D) g;
    g2d.setColor(birumuda);
    g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    for(Shape content : linesList){
        g2d.draw(content);
    }
}

1 个答案:

答案 0 :(得分:3)

这应该抛出NullPointerException。你在哪里初始化你的g2d变量?您的图形看起来不正确。您应该1)在后台线程中读取数据,并将其存储到一个集合中,可能是一个ArrayList。完成此操作后,在事件线程上通知Swing,以便您可以在JPanel的paintComponent方法中绘制数据。有关Swing图形的更多信息,请参阅painting tutorial