0

2 차원 배열이 있습니다. 각 픽셀을 실제 이미지에서 총 4 개로 표현하고 싶습니다. 여러 가지 코드를 시도했지만 아무 것도 작동하지 않는 것으로 보이고 실제로 작동하는 방식을 이해하지 못합니다.Java : 왜이 ​​JPanel이 제대로 칠하지 않습니까?

지금까지 내가 가진 : 어디에서 잘못 가고

panel = new JPanel() { 
      @Override 
      public void paint(Graphics g) { 
       Rectangle rect = g.getClipBounds(); 
       g.setColor(Color.white); 
       g.fillRect(rect.x, rect.y, rect.width, rect.height); 
       for (int i = 0; i < m.width(); i++) { 
        for (int j=0; j < m.height(); j++) { 
         g.setColor(Color.red); 
         g.fillRect(j*4, i*4, 4, 4); 
        } 
       } 
       super.paint(g); 
      } 
     }; 
     panel.repaint(); 

? 이 지역은 색깔이 없어도 완전히 회색으로 유지됩니다!

답변

0

paint()을 덮어 쓰는 것이 최악의 방법은 아니지만 대신 paintComponent()을 무시하는 것이 좋습니다. 또한 Graphics 개체를 사용하여 드로잉을 수행 한 후에는 super.paint()보다 먼저으로 전화해야합니다. 그런 식으로 모든 작업을 스크랩합니다.

또한이 작업을 수행했는지 여부는 코드에 포함되어 있지 않으므로 JFrame 또는 사용중인 모든 윈도우 클래스에 패널을 추가해야합니다. 나타나다. 이게 도움이 되길 바란다.

관련 문제