캔버스에 그래프 데이터 구조를 그릴 수있는 Java 애플릿을 만들려고합니다. 노드를 만들려는 노드를 클릭하고 노드를 클릭하여 연결하려고합니다. 문제는 올바르게 작동하는 paint()
메서드를 가져올 수 없습니다. 나는 창 크기를 조정할 때까지Java 2D 그래픽 사각형
Graphics g = this.getGraphics();
g.setColor(Color.blue);
g.fillRect(e.getX(), e.gety(), 40, 40);
모든 것이 잘 작동, 사용 mousePressed(MouseEvent e)
방법 내부의 새로운 그래프에 노드 (캔버스에 사각형)을 추가 한 다음 모든 채워진 사각형이 사라질. 나는 paint 메소드를 단지 빈 메소드로 오버 라이딩했다. 그러나 같은 일이 여전히 발생한다. 사용자가 마우스를 사용하여 상호 작용할 때까지 어떤 사각형이 있는지 모르기 때문에 paint() 내부에 fillRect 명령을 추가 할 수 없습니다.
마우스 수신기 메서드 내에서 g.fillRect()
을 어떻게 사용할 수 있습니까?
이것은 가장 쉬운 방법처럼 보였습니다. 새로운 BufferedImage를 만든 다음 모든 모양을 그린 다음 페인트 메서드로 이미지를 그렸습니다. 감사! – PherricOxide
아무 문제는 없지만, 결국 당신은 완전히 다시 칠해야 할 수도 있지만 결국 Kyl의 조언을 기억하십시오. (또한 업 카드에 투표하고 원하는 답변을 "수락"하는 것을 기억하십시오.) 업보 포인트가 필요합니다. :) – Gunslinger47
이 특별한 경우 데이터를 유지하는 것이 버퍼링 된 이미지보다 훨씬 좋은 아이디어 일 것입니다. 그러나, 양쪽 극단을 얻기위한 +1. –