我创建了一个扩展JPanel的新类,其中包含:
public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.WHITE);
g.drawArc(x,y, width,height,start-angle, end-angle);
g.drawLine(x1Pos, y1Pos,x2Pos, y2Pos);
g.drawLine(x1Pos, y1Pos,x2Pos,y2Pos);
}
现在我想要的是将这些线,弧和动画组合在一起,而不是为每个线编写代码。像创建这些模块并将它们一起使用的东西。这可能吗? 基本上,将所有这些行组合起来,这样当我编写移动代码时,我不必为每个代码指定代码,而是将它们一起移动。
答案 0 :(得分:3)
您可以使用BufferedImages。创建一个BufferedImage并在图像上绘制。
BufferedImage img = new BufferedImage(100,100,BufferedImage. TYPE_INT_ARGB);
Graphics2D g2d = (Graphics2D) img.createGraphics();
g2d.fillRect(0,0,60,60); //do stuff with g2d here
然后,使用JPanel将每个BufferedImage绘制到屏幕上
public void paintComponent (Graphics g){
g.clearRect(0,0,getWidth(),getHeight());
g.drawImage(img,x,y);
}
答案 1 :(得分:3)
建议:
g.drawLine(100-20, 50, 230-20, 50);
g.drawLine(leftWall-xPos, yPos, rightWall - xPos, yPos);