2013-08-04 81 views
0

我有一個二維數組。我希望每個像素在實際圖像中總共由四個像素表示。我試過各種代碼,但似乎沒有工作,我也不太瞭解它是如何工作的。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()。此外,您必須撥打super.paint()之前的才能使用Graphics對象進行繪圖,而不是之後。它只是把你所有的工作都剪掉了。另外,我不知道你是否做了這個,因爲你沒有在你的代碼中,但一定要將面板添加到JFrame或任何你使用的窗口類,所以它會實際上出現。我希望這有幫助。