Mudar cor de todos os Jpanel de um Jframe

3 respostas
R

Boa tarde!

Estou querendo um metodo para mudar a cor de todos os jpanel de um jframe para eu não precisar mudar tudo na mão.
Porque eu sei que para mudar o de um jpanel eu uso:

mypanel.setBackground(Color.white);

Mas assim se eu tiver 10 jpanels eu terei que fazer isso para os dez, eu quero um metodo que automatize isso.

3 Respostas

U

rei_nl_ds uma solução para o seu problema seria criar um array de jPanel, e rodar a instrução .setbackgroud dentro de um FOR;

R

urbgames, Obrigado pela resposta, entao é isso mesmo que estou querendo fazer, mas não sei como obter esse array, se eu precisar criar um array e passar os meus Jframes manualmente nao terei resolvido meu problema em nada. Pensei que pudesse resolver com esse metodo, mas nada ainda:

public void pinta() {
        Component[] c = this.getComponents();
     
        System.out.print(c.length);


        for (int i = 0; i <= c.length; i++) {


            if (c[i] instanceof JPanel) {
                c[i].setBackground(Color.red);
              
            }
        }
        
    }
U

Trouxe alguns métodos que lhe podem ser útil.

Primeiro é criar os Jlabel

ArrayList<JLabel> labels = new  Jlabel();

public void addLabel(){
		
		labels.add(new JLabel("Teste"));
		
		//se quiser pode ir adicionando e pintando
	}

Após isso pode pinta-los.

public void pintarLabel(){
		
		
		for (int i = 0; i < labels.size(); i++) {
			labels.get(i).setBackground(Color.black);
		}
		
	}

e por fim carregar

Container container = new Container();

public void carregarLabel(){
		
		container =null;
		
		for (int i = 0; i < labels.size(); i++) {
			container.add(labels.get(i));
			
		}
		
	}

Na nossa aplicação não estamos utilizando a adição de Jlabel dinâmica se estivéssemos vc utilizaria o método de adicionar e o incrementaria para pintar e carregar.

Vc tem ainda que atualizar o Container onde vc for adicioná-lo, como por exemplo no Jframe.

Criado 7 de março de 2013
Ultima resposta 7 de mar. de 2013
Respostas 3
Participantes 2