Olá pessoal,
Estou meio que iniciando em swing e gostaria de fazer um Panel ser “populado” automaticamente quando um togglebutton for pressionado.
Montei meu frame conforme o código abaixo, porém, quando clico no botão, nada acontece, porém se eu o mantiver “clicado” e redimensionar o frame, o panel aparece, da forma que eu queria.
Já tentei colocar repaint pra todo lado, mas não estou entendendo o motivo de não aparecer.
Se alguém também souber alguma outra forma melhor de fazer isto eu agradeço.
public class Framezao extends JFrame{
private JPanel painelEsquerdo = new JPanel();
private JPanel painelPrincipal = new JPanel();
private JPanel painelDetalhes = new JPanel();
private JToggleButton botaoMaisDetalhes;
public Framezao() {
iniciaComponentes();
}
public void iniciaComponentes() {
painelEsquerdo = new JPanel();
painelPrincipal = new JPanel();
painelDetalhes = new JPanel();
botaoMaisDetalhes = new JToggleButton("Mais Detalhes");
botaoMaisDetalhes.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if (botaoMaisDetalhes.isSelected()) {
painelDetalhes.add(new JLabel("Informação 1"));
painelDetalhes.add(new JLabel("Informação 2"));
painelDetalhes.add(new JLabel("Informação 3"));
} else {
painelDetalhes.removeAll();
}
}
});
painelDetalhes.setLayout(new BoxLayout(painelDetalhes, BoxLayout.Y_AXIS));
painelEsquerdo.setBackground(new Color(204, 204, 204));
painelEsquerdo.setLayout(new BoxLayout(painelEsquerdo, BoxLayout.Y_AXIS));
painelEsquerdo.add(botaoMaisDetalhes);
painelEsquerdo.add(painelDetalhes);
getContentPane().add(painelEsquerdo, BorderLayout.WEST);
getContentPane().add(painelPrincipal, BorderLayout.CENTER);
setMinimumSize(new Dimension(640,480));
}
public static void main(String[] args) {
new Framezao().setVisible(true);
}
}
Valew