내 그림의 각 라인이 이전 라인의 그림에 의존하는 프로그램을 작성 중입니다. 새로운 도장은 지정된 좌표에서 이전 라인의 RGB 값을 필요로하기 때문에 JPanel을 BufferedImage로 변환 한 다음 getRGB()를 사용하여 색상을 가져옵니다.기존 이미지에 그리기
새 이미지를 만들 때 초기 이미지를 가져 오는 문제가 있습니다.
다음의 코드 라인은 인스턴스 변수
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if(line==1)
{
g.setColor(Color.WHITE);
g.fillRect(0,0,100,100);
g.setColor(Color.RED);
g.fillRect(25,25,20,20);
}
else if(line!=1)
{
g=img.getGraphics();
g.setColor(Color.BLUE);
g.fillRect(50,50,25,25);
}
}
을 워크 않으며 IMG는 선으로 제 라인 -
Paint_Test ob=new Paint_Test();
frame.add(ob);
img=toBufferedImage(ob);
의 BufferedImage의 인
g=img.getGraphics();
원래의 bufferedimage의 그래픽 객체를 가져 와서 그 위에 그려 넣으려고합니다. 대신 출력물에 빈 화면이 표시됩니다 (이상적인 출력은 두 개의 사각형, 빨간색과 파란색 중 하나입니다).
제가 잘못 가고있는 부분과 어떻게 해결할 수 있는지 알려주세요. 당신의 도움이 크게 감사 할 것입니다.
감사합니다.
적절한 [mcve]를 게시하는 것이 도움이되도록 'else if (line! = 1)'줄을'else '로 다시 쓸 수 있습니다. – Frakcool