다음 코드 분자 구조를 그립니다. 분자를 전달하지 않으면 마지막 구조가 JPanel에 계속 표시됩니다. 분자가 없을 때이를 빈 캔버스로 어떻게 재설정합니까? 즉, drawMolecule() 메서드의 else {} 안에 무엇을 넣어야합니까?JPanel에서 그래픽 재설정
답변
당신은 다른 사람의 새로운 BufferedImage를 만들 수 있습니다 또는 당신이 BufferedImage의의 Graphics2D의 구성 요소를 얻을 수, setBackground(Color c)
를 통해 자사의 배경 색상을 설정 한 다음 그 dispose()
방법을 통해 수행 할 때 다음 Graphics2D 객체를 처리 clearRect(...)
를 통해 이미지를 취소합니다.
실제로 코드를 검토 한 결과이 작업을 수행하지 않습니다. Graphics 또는 Graphics2D 자원을 사용한 후에는 Graphics 또는 Graphics2D 자원을 직접 작성한 경우 (JVM에서 가져온 경우 paint 또는 paintComponent 메소드를 통해 얻지는 않는다) 반드시 폐기해야합니다.
dispose() 및 clearRect()를 시도했습니다. 작동하지 않았습니다! 나는 또한 움직이는 시도 Graphics2D g2 = (Graphics2D) image.getGraphics(); g2.setColor (Color.WHITE); g2.fillRect (0, 0, w, h); 두 번째 블록 밖으로 .. 아무것도! – lochi
@lochi : "작동하지 않았다"는 사실을 거의 알려주지 않습니다. 새 코드와 오작동에 대한 오류 메시지 또는 정보를 원래 게시물의 편집으로 표시 한 다음 다시 신고하십시오. –
문제와 관련이있는 것 같지 않지만 super.paintComponents (g)에 오타가 있습니다. "s"를 없애면 super.paintComponent (g)가됩니다. – camickr