Duvida com JTabbedPanel

Boa Noite pessoal!

Estou com um problema, não consigo entender o que esta dano errado com o JTabbedPanel
quando eu copilo o código as guias aparece uma em cima da outra.
Sera que só pode usar JTabbedPanel no JFrame sem colocar em um JPanel e nao ter mais nenhum JPanel dentro do JFrame?
[color=red]
obs: a janela não esta toda pronta tirei os botões para não deixa codigo fonte grande de mais para ler.[/color]

O codigo fonte da tela esta embaixo o metodo que eu uso para criar um JTabbedPanel é montarPainelAbas().

[code]package br.com.devmedia.completeswingapp.frames;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Frame;

import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.WindowConstants;

public class TesteJTabbedPanel extends JDialog{

public TesteJTabbedPanel(Frame parent, boolean modal){
	super(parent, modal);
	criarPainelAnimal();
}

public void criarPainelAnimal(){
	JPanel painelAnimal= new JPanel();
	painelAnimal.setLayout(new FlowLayout());
	painelAnimal.add(criarMenuBotoes());
	painelAnimal.add(montarPainelAbas());
	setTitle("Animal of System");
	setSize(455, 425);
	add(painelAnimal);
	setResizable(false);
	setLocationRelativeTo(null);
	setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);	
}

public JPanel criarMenuBotoes(){
	
	JPanel painelPrincipal = new JPanel();
	painelPrincipal.setLayout(new BorderLayout());
	painelPrincipal.setBorder(new javax.swing.border.EtchedBorder()); 
	painelPrincipal.setPreferredSize(new Dimension(400,70));
	
	return painelPrincipal;
}

public JTabbedPane montarPainelAbas(){
	
	JTabbedPane tabbedPane = new JTabbedPane();
	JPanel panelAba1 = new JPanel();
	panelAba1.setLayout(new FlowLayout());
	tabbedPane.setSize(new Dimension(100,100));
	JPanel panelAba2 = new JPanel();

	tabbedPane.addTab("Tab 1", panelAba1);
	tabbedPane.addTab("Tab 2", panelAba2);
	return tabbedPane;
}	

public static void main(String[] args){
	JFrame frame = new JFrame();
	
	TesteJTabbedPanel teste = new TesteJTabbedPanel(frame, true);
	teste.setVisible(true);
}

}
[/code]

Grohl
Não sei o que você tentou fazer exatamente, mas imagino que, com o flowlayout, os painéis do JTabbePane fiquem do tamanho do painel que você adiciona dentro deles. Se você mudar isso (ou adicionar os componentes aos painéis), a coisa se ajeite.

De todo modo, acho que com o BorderLayout a coisa fica mais ajeitada:

[code]import java.awt.Frame;
import java.awt.Dimension;
import java.awt.BorderLayout;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.*;

public class TesteJTabbedPanel extends JDialog{

public TesteJTabbedPanel(Frame parent, boolean modal){
	super(parent, modal);
	this.setLayout(new BorderLayout());
	JTabbedPane tb = new JTabbedPane();

	JPanel painel1 = new JPanel();
	JPanel painel2 = new JPanel();
	JPanel topo = new JPanel();
	
	this.setSize(new Dimension(500, 500));
	
	topo.add(new JLabel("Um label qualquer"));
	painel1.add(new JLabel("Um label qualquer no painel 1"));
	painel2.add(new JLabel("Um label qualquer no painel 2"));

	tb.addTab("Aba 1", painel1);
	tb.addTab("Aba 2", painel2);

	getContentPane().add(tb, BorderLayout.CENTER);
	getContentPane().add(topo, BorderLayout.NORTH);
}

public static void main(String[] args){
	JFrame frame = new JFrame();
	
	TesteJTabbedPanel teste = new TesteJTabbedPanel(frame, true);
	teste.setVisible(true);
}

}[/code]Abraço.

TerraSkilll
Vlw pela ajuda eu só precisei mudar uma linha do método montarPainelAbas()
parece que o método setSize não funciona numa JTabbedPane , mas o método setPreferredSize
ajusta o tamanho deixando as guias corretamente.

o código que eu fiz a correção esta embaixo.

public JTabbedPane montarAbasPainel(){
		
		JTabbedPane tabbedPane = new JTabbedPane();
		tabbedPane.setPreferredSize(new Dimension(400,300));// correção estava com o método setSize
		
		JPanel panelAba1 = new JPanel();
		JPanel panelAba2 = new JPanel();
	
		tabbedPane.addTab("Tab 1", panelAba1);
		tabbedPane.addTab("Tab 2", panelAba2);
		return tabbedPane;
		
	}