캔버스에 경로를 그릴 수있는 응용 프로그램을 만들고 싶습니다. 문제는이 캔버스를 지속적으로 업데이트해야한다는 것입니다.Java 캔버스에서 추첨을 업데이트하십시오.
현재 나는 그것을 할 수 있지만 매번 모든 경로를 다시 그려야하므로 모든 포인트를 메모리에 저장해야합니다. 새 지점을 추가하여 추첨을 간단히 업데이트하는 것을 선호합니다.
가능합니까?
현재 내 코드는 다음과 같습니다
public class MyCanvas extends Canvas{
private static final long serialVersionUID = 1L;
public MyCanvas(){}
public void paint(Graphics graphics){
super.paint(graphics);
graphics.setColor(Color.green);
// points is an ArrayList of Point2D
for (Iterator iterator = points.iterator(); iterator.hasNext();) {
Point2D point2d = (Point2D) iterator.next();
graphics.fillOval((int)((canvas.getWidth()/2.0) + point2d.getX()), (int)((canvas.getHeight()/2.0) + point2d.getY()), 5, 5);
}
}
}
감사합니다!
편집
이 현재의 솔루션입니다 :
PanelCanvas canvasPanel;
...
public void drawCircle(int x, int y){
Graphics2D g2d = bufferedImage.createGraphics();
g2d.setColor(Color.green);
g2d.setBackground(Color.white);
g2d.fillOval((int)((panelCanvas.getWidth()/2.0) + x/10.0), (int)((panelCanvas.getHeight()/2.0) + y/10.0), 5, 5);
panelCanvas.repaint();
}
public class CanvasPanel extends JPanel{
public void paintComponent(Graphics graphics){
super.paintComponents(graphics);
Graphics2D g2d = (Graphics2D)graphics;
g2d.setBackground(Color.white);
g2d.drawImage(bufferedImage, null, 0, 0);
}
}
왜이 천년기에 AWT 구성 요소를 사용하여 코딩하고 있습니까? 그 (것)들을 사용한 대부분의 사람들은 어떻게 잊어 버렸습니다. 또한 순수 AWT인데 왜 [tag : swing] 태그를 추가 했습니까? 질문 내의 질문 .. –
@AndrewThompson 캔버스가 스윙 GUI에 내장되어 있습니다. AWT.Canvas를 대체하기 위해 당신은 무엇을 제안합니까? 감사! – Maverik
내 대답을 편집하십시오. –