[RESOLVIDO] Adicionar JPanel

Dúvida:
Gostaria de add um JPanel e setar uma cor para verificar se de fato foi adicionado.

Código completo:
package br.com.login.telas;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

        import javax.swing.ImageIcon;
        import javax.swing.JButton;
        import javax.swing.JFrame;
        import javax.swing.JLabel;
        import javax.swing.JPanel;


    public class TelaInfo extends JFrame{
    	//usando extends evita de instanciar objeto e ter que colocar classe.algumacoisa
    	JLabel lblVersao = new JLabel();
    	JLabel lblDesenvolvedor = new JLabel();
    	JLabel lblContato = new JLabel();
    	JButton btnCancelar = new JButton();
    	
    	JPanel panel = new JPanel(new BorderLayout());
    	
    	public TelaInfo() {
    		//adquado usar
    		
    		panel.setSize(50,50);
    		panel.setVisible(true);
    		panel.setBackground(Color.GREEN); 
    		add(panel);
    		
    		//recomendado - getContentPane().add(btn);
    		
    		//setLayout(new FlowLayout());
    		
    		setLayout(null);
    		setSize(230,150); //x y
    		setTitle("Tela Login");
    		setLocationRelativeTo(null);
    		setResizable(false);
    		
    		
    		lblVersao.setText("Versão: 0.1");
    		lblDesenvolvedor.setText("Desenvolvedor: Thalles Rangel Lopes");
    		lblContato.setText("Contato: rangelthr@gmail.com");

    		lblVersao.setBounds(10,10,80,15); // posicão x y - padding largura - altura
    		lblDesenvolvedor.setBounds(10,30,215,15); 
    		lblContato.setBounds(10,50,215,15); 
    		
    		btnCancelar.setBounds(10, 80, 32, 32);//Define o tamanho e posição do btnLogin
    		btnCancelar.setIcon(new ImageIcon(Class.class.getResource("/br/com/login/icon/exiticon.png")));//Define img do btnLogin
    		
    		add(lblVersao);
    		add(lblDesenvolvedor);
    		add(lblContato);
    		add(btnCancelar);
    		
    		
    		//btnCancelar
    		btnCancelar.addActionListener(new ActionListener() {

    		        public void actionPerformed(ActionEvent e) {
    		           dispose();
    		        }
    		    });
    	}

    	private void setLogin() {
    		// TODO Auto-generated method stub
    		
    	}
    }

Resultado: image
Código que coloquei:
JPanel panel = new JPanel(new BorderLayout());

panel.setSize(50,50);
panel.setVisible(true);
panel.setBackground(Color.GREEN); 
add(panel);

Resultado, apenas executa e nada é mostrado como esperado.

Para você visualizar a cor de fundo de um JPanel, ele precisa estar opaco, por padrão eles são transparentes.
Assim vai resolver:

JPanel panel = new JPanel(new BorderLayout());
panel.setSize(50, 50);
panel.setOpaque(true); // pra ver a cor de fundo, ele precisa estar opaco
panel.setBackground(Color.GREEN);
add(panel);

Esse comentário não faz o menor sentido, olha só:

  • Você não vai instanciar objetos e sim instanciar classes, o resultado da instanciação de uma classe é o que chamamos de objeto, ou seja, um objeto é uma instância de uma classe.

  • O extends serve pra cirar uma relação de herança, quando você diz que UmaClasse extends OutraClasse, você está dizendo que UmaClasse é OutraClasse.

  • No seu caso está dizendo que TelaInfo é um JFrame, mas para utilizar, você vai precisar instanciar a classe.

3 curtidas