我想从数据库创建程序加载行。我一直在使用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);
}
}
答案 0 :(得分:3)
这应该抛出NullPointerException。你在哪里初始化你的g2d变量?您的图形看起来不正确。您应该1)在后台线程中读取数据,并将其存储到一个集合中,可能是一个ArrayList。完成此操作后,在事件线程上通知Swing,以便您可以在JPanel的paintComponent方法中绘制数据。有关Swing图形的更多信息,请参阅painting tutorial。