JPanel nao aparece

Eu tenho um JFrame, e este comporta 2 JPanel … Estou usando BorderLayout para ele

Um dos JPanel é meu menu, agora tenho que usar setLayout(null) no meu menu, para posicionar os componentes com o setBounds()… mas, quando eu boto setLayout(null) no menu, ele some da tela… e quando eu deixo o setLayout como padrao, ele aparece… Mas com os componentes um do lado do outro, e oque eu preciso é que eles apareçam um embaixo do outro

Enfim, se alguem tambem tiver uma indicação de layout para posicionar elementos um embaixo do outro… pode citar tambem ! hehe :smiley:

Posta o codigo, mas se for preciso usa o FlowLayout para os menus…sem o codigo fica dificil de entender

[code]package view;

import java.awt.Color;

import javax.swing.JButton;
import javax.swing.JPanel;

public class MenuPrincipal extends JPanel{

private JButton jb_home = new JButton("HOME");
private JButton jb_funcionario = new JButton("Funcionários");
private JButton jb_pessoa = new JButton("Pessoas");
private JButton jb_propriedade = new JButton("Propriedades");
private JButton jb_conta = new JButton("Contas");
private JButton jb_evento = new JButton("Eventos");
private JButton jb_aviso = new JButton("Avisos");

private static final long serialVersionUID = 1L;

protected MenuPrincipal() {
	setVisible(true);
	setLayout(null);
	setBackground(new Color(154,205,50));
	addComponentes();
}

private void addComponentes() {
	add(this.jb_home);	
	add(this.jb_propriedade);
	add(this.jb_pessoa);
	add(this.jb_funcionario);
	add(this.jb_conta);
	add(this.jb_evento);
	add(this.jb_aviso);		
}	

}[/code]

esse é o codigo do meu menu principal, ele nao ta aparecendo…

olha amigo, pelo que eu saiba o FlowLayout alinha os componentes em linha, e oque eu preciso, é alinhar eles em coluna… agradeço a atençao!

Pelo que vi, achei estranho em primeiro lugar vc estender com o JPanel e utilizar o metodo setVisible(), em segundo lugar, eh obvio que nao vai aparecer o seu menu, eu nao achei no seu codigo o Container tela = getContentPane(); que faz com que seus componentes aparecem no JFrame… da uma melhorada nesse codigo, pois esta meio confuso…

nao entendi mt bem, primeiro, getContentPane é usada para JFrames… esse meu JPanel é apenas o Menu que vai ir ao JFrame, vou postar o codigo do JFrame e do JPanel para ficar mais claro :wink:

Meu JFrame:

[code]package view;

import java.awt.BorderLayout;
import java.io.IOException;

import javax.swing.JFrame;

public class CondoManager extends JFrame {

private static final long serialVersionUID = 1L;

public CondoManager() throws IOException {
	setTitle("Condo Manager");
	setSize(900, 700);
	setExtendedState(JFrame.MAXIMIZED_BOTH); 
	setLocationRelativeTo(null);
	setLayout(new BorderLayout());
	setVisible(true);
	add(BorderLayout.WEST, new MenuPrincipal());
	add(BorderLayout.CENTER, new Home());
}

public static void main(String[] args) throws IOException {
	new CondoManager();
}

}[/code]

Meu Jpanel (MenuPrincipal):

[code]package view;

import java.awt.Color;

import javax.swing.JButton;
import javax.swing.JPanel;

public class MenuPrincipal extends JPanel{

private JButton jb_home = new JButton("HOME");
private JButton jb_funcionario = new JButton("Funcionários");
private JButton jb_pessoa = new JButton("Pessoas");
private JButton jb_propriedade = new JButton("Propriedades");
private JButton jb_conta = new JButton("Contas");
private JButton jb_evento = new JButton("Eventos");
private JButton jb_aviso = new JButton("Avisos");

private static final long serialVersionUID = 1L;

protected MenuPrincipal() {
	setLayout(null);
	setBackground(new Color(154,205,50));
	addComponentes();
}

private void addComponentes() {
	add(this.jb_home);	
	add(this.jb_propriedade);
	add(this.jb_pessoa);
	add(this.jb_funcionario);
	add(this.jb_conta);
	add(this.jb_evento);
	add(this.jb_aviso);		
}	

}[/code]

Para resolver seu problema creio que basta você definir o tamanho do JPanel com o seguinte método:

seuJPanelNull.setPreferredSize(new Dimension(200,100));