2016-05-01 6 views
-2

画像を上書きするために私のパネルに矩形を塗りたい。しかし、私のコードでは何も起こりません。あなたが理由を知っている?私はsetBackgroundを使いたくない。Java:fillRectでJPanelの色を変更

Graphics g = JPanel.getGraphics(); 
g.setColor(Color.red); 
g.fillRect(0, 0, window.drawPanel.getWidth(), window.drawPanel.getHeight()); 
+4

「setBackgroundを使用したくありません。」 - なぜですか?それが正しい方法です。ペイントにはgetGraphics()メソッドを使用しないでください。使用するように設計された方法でAPIを使用してください。 – camickr

答えて

0

あなたがこの方法でのパネルの背景を変更したい場合。このようにpaintComponentメソッドをオーバーライドする必要があります。

JPanel jYourPanel = new JPanel(){ 
     @Override 
     public void paintComponent(Graphics g) { 
     super.paintComponent(g); 
     Graphics2D g2 = (Graphics2D) g; 
     g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); 

     //lets paint background 
     g2.setColor(Color.RED); 
     g2.fillRect(0, 0, getWidth(), getHeight()); 

     } 
    }