[Resolvido] Não consigo mudar cor de JPanel

2 respostas
Z
Oi pessoal, bem eu tô com problema na mudança de cor de um JPanel usando o netbeans. Eu sobreescrevo o método paintComponent, mas não surte efeito e o fundo que aparece é o do JFrame. Aí abaixo o código das classes usadas.
public class Main {

    
    public static void main(String[] args) {
       frame f=new frame();
       f.setSize(300,300);
       f.setVisible(true);
       }
    }
public class frame extends javax.swing.JFrame {

    /** Creates new form frame */
    public frame() {
        initComponents();
        pane p=new pane();
        setContentPane(p);
    }

  
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setBackground(new java.awt.Color(255, 51, 51));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 583, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 427, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>

    // Variables declaration - do not modify
    // End of variables declaration

}
import java.awt.*;
public class pane extends javax.swing.JPanel {

    /** Creates new form pane */
    public pane() {
        initComponents();
    }
    @Override
public void paintComponent(Graphics g){
g.setColor(Color.red);

}
   
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {


        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );
    }// </editor-fold>


    // Variables declaration - do not modify
    // End of variables declaration

}

Valeu desde já galera.

2 Respostas

J

Olá,
para somente mudar a cor de um JPanel, vc não precisa sobrescrever paintComponent, pode fazer igual ao que fez no JFrame, utilize o método setBackground(Color).
Se vc quiser sobrescrever paintComponent(), vc tem que desenhar alguma coisa para aparecer, chamando só o método setColor() de Graphics não vai acontecer nada. Vc pode por exemplo desenhar um retângulo:

g.setColor(Color.BLUE);
g.fillRect(0, 0, this.getWidth, this.getHeight);
Z

Eu tinha percebido isso agora a pouco…valeu mesmo cara…valeu mesmo. :smiley:

Criado 22 de abril de 2010
Ultima resposta 22 de abr. de 2010
Respostas 2
Participantes 2