Componentes swing não aparecem no frame

Boa tarde pessoal,
estou desenvolvendo uma telinha simples de CRUD, estou utilizando o windowBuilder(eclipse), os meus componentes não querem aparecer no layout, como menu, labels texts, eu setei o layout como absolute.
Alguem poderia me informar o oque esta ocorrendo ?
Removi os meus componentes e deixei apenas o menu e mesmo assim nao esta apresentando.

package br.com.catalogoclientes.view;

import java.awt.EventQueue;

public class SobreClientesUI extends JFrame {

	private JFrame frame;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					SobreClientesUI window = new SobreClientesUI();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public SobreClientesUI() {
		getContentPane().setLayout(null);
		
		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);
		
		JMenu mnNewMenu = new JMenu("Clientes");
		menuBar.add(mnNewMenu);
		
		JMenuItem mntmD = new JMenuItem("Importar ...");
		mnNewMenu.add(mntmD);
		
		JMenuItem mntmCadastrar = new JMenuItem("Cadastrar");
		mnNewMenu.add(mntmCadastrar);
		
		JMenuItem mntmListar = new JMenuItem("Listar");
		mnNewMenu.add(mntmListar);
		
		JMenuItem mntmAlterarDados = new JMenuItem("Alterar dados");
		mnNewMenu.add(mntmAlterarDados);
		
		JMenuItem mntmExportarParaXml = new JMenuItem("Exportar em formato XML");
		mnNewMenu.add(mntmExportarParaXml);
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setBounds(100, 100, 450, 300);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

Você precisa definir os bounds do componente, com o comando setBounds.

Eles não tem como saber onde parar magicamente.

Agora, melhor ainda é você usar os gerenciadores de layout.
Com o WindowBuilder, fica bem fácil usá-los.

Tópico movido para o fórum de interface gráfica. Outra opção seria Framework, Ferramentas e Utilitários. Mas não Java Básico.
Por favor, leia com atenção a lista de fóruns antes de postar.

faltou vc adicionar o menubar no construtor do SobreClientsUI apos ser inicializado

//inicializa o frame . . . 
initialize();
frame.add(menuBar);

outra coisa, eu vi que vc extendeus JFrame, e colocou outro frame como atributo, seria pra fazer um popup (frame = popup, SobreUI = tela principal)?

[quote=ViniGodoy]Você precisa definir os bounds do componente, com o comando setBounds.

Eles não tem como saber onde parar magicamente.

Agora, melhor ainda é você usar os gerenciadores de layout.
Com o WindowBuilder, fica bem fácil usá-los.[/quote]

Ola Vini,
O absolute layout não seria um gerenciador de layout?

[quote=lucasirc]
faltou vc adicionar o menubar no construtor do SobreClientsUI apos ser inicializado

//inicializa o frame . . . 
initialize();
frame.add(menuBar);

Eu add no meu frame mas o layout desconfigurou. ficou como o panel normal alinhado a esquerda.

outra coisa, eu vi que vc extendeus JFrame, e colocou outro frame como atributo, seria pra fazer um popup (frame = popup, SobreUI = tela principal)? [/quote]

Não. Como vc pode ver na linha:

getContentPane().setLayout(null);  

Trata-se de não usar layout nenhum.

Ola pessoal,
deu certo aqui, fiz da seguinte forma,
não precisei setar os bounds, removi o frame interno como o lucasirc sugeriu, e alterei minhas referencias internas para this e não para o frame que estava utilizando.
O problema seria que o frame interno estava sobrepondo meu frame com os componentes ?

ele nao estava sobrepondo, simplemente vc nao estava utilizando as funcionalidades do JFrame da classe SobreClientesUI, vc estava utilizando o frame para ser a sua janela, e o SobreClientesUI estava sendo apenas uma classe que “configurava” o seu atributo frame e ao mesmo tempo estava extendendo classe JFrame,
o correto foi como diz ter feito, remove o atributo frame, e utiliza SobreClientesUI é como janela. e o atributo frame utilizaria para abrir um popup ou outra coisa … . .

[quote=ViniGodoy]Não. Como vc pode ver na linha:

getContentPane().setLayout(null);  

Trata-se de não usar layout nenhum.[/quote]
A certo, agora entendi o que vc tinha dito, obrigado.

ele nao estava sobrepondo, simplemente vc nao estava utilizando as funcionalidades do JFrame da classe SobreClientesUI, vc estava utilizando o frame para ser a sua janela, e o SobreClientesUI estava sendo apenas uma classe que “configurava” o seu atributo frame e ao mesmo tempo estava extendendo classe JFrame,
o correto foi como diz ter feito, remove o atributo frame, e utiliza SobreClientesUI é como janela. e o atributo frame utilizaria para abrir um popup ou outra coisa … . .
[/quote]
entendi obrigado.