2016-05-01 3 views
-2

Я хочу заполнить мою панель прямоугольником, чтобы переопределить изображение. Но с моим кодом ничего не происходит. Ты знаешь почему? Я не хочу использовать setBackground.Java: изменение цвета JPanel с помощью fillRect

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()); 

     } 
    } 
Смежные вопросы