Ir ao conteúdo
  • Cadastre-se

JButton não aparece em JPanel


Visitante

Posts recomendados

Tenho um JFrame que tem 3 JPanels como atributos. Esses JPanels são classes separadas.

A ideia colocar um dos JPanels como contentPane de acordo com o botão pressionado.

 

Dá certo quando o JPanel está "vazio", mas quando eu tento adicionar botões nele não funciona. Podem ajudar?

 

Classe JFrame Tela:

package UI;

import java.awt.Dimension;
import java.awt.HeadlessException;
import javax.swing.JFrame;

public class Tela extends JFrame {
    
    private PainelInicial pnlIni;
    private PainelCadastro pnlCad;
    private PainelDados pnlDados;
    
    public Tela() throws HeadlessException {
        initTela();
       
        pnlIni = new PainelInicial();
        pnlCad = new PainelCadastro();
        pnlDados = new PainelDados();
        
        setContentPane(pnlIni);
    }
    
    private void initTela(){
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setPreferredSize(new Dimension(400, 480));
        setResizable(false);
        setLocation(490, 140);   
        //setLayout(null);
        //setContentPane(pnlIni); //painel default
        pack();
        setVisible(true);    
    }
    
    public void setPainelInicial(){
        this.setTitle("Início");
        this.setContentPane(pnlIni);
    }
    
    public void setPainelCadastro(){
        this.setTitle("Cadastro");
        this.setContentPane(pnlCad);
    }
    
    public void setPainelDados(){
        this.setTitle("Página de "); //TODO pegar nome do user logado
        this.setContentPane(pnlDados);
    }
}

Classe Panel Inicial:

 

package UI;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import net.miginfocom.swing.MigLayout;
public class PainelInicial extends JPanel{
    
    private JPanel sub;
    private JButton btCad;
    
    
    
    public PainelInicial() {
       //layout da classe + layout de cada sub painel
        //esse painel está minusculo
        //setLayout(null); NAO PODE SER NULL
        
        //setLayout(new BorderLayout());
        setBackground(Color.ORANGE);
        sub = new JPanel();
        sub.setBackground(Color.BLACK);
        sub.setPreferredSize(new Dimension(200, 200));
        //sub.setLayout(new BorderLayout());
        //btCad = new JButton("Prees me");
        //sub.add(btCad, BorderLayout.CENTER);
        
        
        this.add(sub, BorderLayout.CENTER);
        //this.add(btCad);
        
        
    }
    
    
}


 

Dá forma como está funciona, mas se descomentar o botão não roda mais (aparece só o frame, sem nenhum dos Panels)

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...