Problemas com JTabbedPane

olá,

implementei um código com essa classe criando duas abas, um para cada painel, porém quando eu maximiso ou restauro ou por qualquer outro motivo aparece ao lado das 2 abas outras partes do propio painel,
ísso acontece até mesmo quando digito algo num jComboBox que tem dentro desse painel. como eu resolvo isso?

obs não funcionou sobrescrever o método: paintComponent(Graphics g)…

obrigado

Isso acontece por causa do layout que vc está usando no painel (vc deve estar usando o layout nullo) no qual vc coloca o JTabbedPane. Tente colocar o layout desse painel como GridLayout e vê se funciona como vc quer.

von.juliano não funcionou…

O q vc tá usando? Netbeans ou eclipse?

eclipse

Esse painel só contem o JTabbedPane? Pq se for assim, vc pode setar o layout do painel para gridlayou, 1 X 1, que ele vai colocar só o tab no painel ocupando todo o espaço, redimensionando ele junto, caso o painel tb seja.

só tem ele e curiosamente captura até mesmo cores de jpanels que não estão ligados a ele

Cara, põe o código aí.

//
/
TabbedComponente /
/
/
/
/
import java.awt.Color;
/**

  • Summary description for TabbedComponente

*/
public class TabbedComponente extends JPanel
{
// Variables declaration
private final Color corDefault = CoresDefault.getCorPaineis();
private FrameSil framePai;
private JTabbedPane jTabbedPane2;
private JPanel contentPane;
//-----
private JPanel jPanel4;
//-----
private JPanel jPanel5;

Dimension d,e = new Dimension();
//-----
// End of variables declaration

public void paintComponent(Graphics g) 
{ 
	d = framePai.getSize();
	
	if ( e.width != d.width  || e.height != d.height) 
	{
		
		
		
		this.remove(contentPane);
	
		dimensionando();
		
	}
	
}



public TabbedComponente(FrameSil 

framePai)
{

	super();
			
	initializeComponent(framePai, wa);
	//
	// TODO: Add any constructor code after initializeComponent call
	//

	this.setVisible(true);
}


	private void initializeComponent(FrameSil framePai)
{
	this.setBackground(corDefault);
	this.framePai=framePai;
	jTabbedPane2 = new JTabbedPane();
	jTabbedPane2.setBackground(corDefault);
	
	
	 JTabbedPane b= new JTabbedPane();

	
	 contentPane =this;		contentPane.setBackground(corDefault);
	//-----
	jPanel4 = new JPanel();
	jPanel4.setBackground(corDefault);
	jPanel4.add(new PainelAvaliacaoWeb(framePai));
	
	//-----
	jPanel5 = new JPanel();
	jPanel5.setBackground(corDefault);
	jPanel5.add(new PainelAvaliacaoLocal(framePai));
	//-----

	//
	// jTabbedPane2
	//
	jTabbedPane2.addTab("Analise Web", jPanel4);
	jTabbedPane2.addTab("Analise Local", jPanel5);

	
	//
	// contentPane
	//
	contentPane.setLayout(new GridLayout());
	
	d = framePai.getSize();
	dimensionando();

	//add(contentPane);
	//
	// jPanel4
	//
	jPanel4.setLayout(new CardLayout());
	
	//
	// jPanel5
	//
	jPanel5.setLayout(new CardLayout());
	//
	// TabbedComponente
	//
//	this.setTitle("TabbedComponente - extends JFrame");
//	this.setLocation(new Point(0, 0));
//	this.setSize(new Dimension(390, 300));
}

/** Add Component Without a Layout Manager (Absolute Positioning) */
private void addComponent(Container container,Component c,int x,int y,int width,int height)
{
	c.setBounds(x,y,width,height);
	container.add(c);
}

//
// TODO: Add any appropriate code in the following Event Handling Methods
//
private void jTabbedPane2_stateChanged(ChangeEvent e)
{
	
	System.out.println("\njTabbedPane2_stateChanged(ChangeEvent e) called.");
	// TODO: Add any handling code here

}

public void dimensionando(){
	e=d;
	addComponent(contentPane, jTabbedPane2, 0,0,d.width-8,d.height-317);

}
}

Olha só, eu peguei o seu código e adaptei, por causa das suas classes e etc. Tá aí, funcionando direitinho, vc só tem q adaptar da forma q vc precisa:

[quote]
//
/
TabbedComponente /
/
/
/
/
import java.awt.*;

import javax.swing.*;
import javax.swing.event.ChangeEvent;

public class TabbedComponent extends JPanel {
// Variables declaration
private final Color corDefault = new Color(0, 0, 0).blue;

private JFrame framePai;

private JTabbedPane jTabbedPane2;

private JPanel contentPane;

private JPanel jPanel4;

private JPanel jPanel5;

Dimension d, e = new Dimension();

public void paintComponent(Graphics g) {
	d = framePai.getSize();

	if (e.width != d.width || e.height != d.height) {
		this.remove(contentPane);
		dimensionando();
	}
}

public TabbedComponent(JFrame framePai) {
	super();
	initializeComponent(framePai);

	this.setVisible(true);
}

private void initializeComponent(JFrame framePai) {
	this.setBackground(corDefault);
	this.framePai = framePai;
	jTabbedPane2 = new JTabbedPane();
	jTabbedPane2.setBackground(corDefault);

	JTabbedPane b = new JTabbedPane();

	contentPane = this;
	contentPane.setBackground(corDefault);
	// -----
	jPanel4 = new JPanel();
	jPanel4.setBackground(corDefault);
	jPanel4.add(new JPanel());

	jPanel5 = new JPanel();
	jPanel5.setBackground(corDefault);
	jPanel5.add(new JPanel());

	jTabbedPane2.addTab("Analise Web", jPanel4);
	jTabbedPane2.addTab("Analise Local", jPanel5);


	contentPane.setLayout(new GridLayout());

	d = framePai.getSize();
	dimensionando();


	jPanel4.setLayout(new CardLayout());

	jPanel5.setLayout(new CardLayout());
	//

}

/** Add Component Without a Layout Manager (Absolute Positioning) */
private void addComponent(Container container, Component c, int x, int y,
		int width, int height) {
	c.setBounds(x, y, width, height);
	container.add(c);
}

private void jTabbedPane2_stateChanged(ChangeEvent e) {

	System.out
			.println("\njTabbedPane2_stateChanged(ChangeEvent e) called.");
	// TODO: Add any handling code here

}

 public void dimensionando(){
	 e=d;
	 addComponent(contentPane, jTabbedPane2, 0,0,d.width-8,d.height-317); 
 }
 
 // Só para teste
 public static void main(String[] args) {
	 JFrame f = new JFrame();
	 TabbedComponent t = new TabbedComponent(new JFrame());
	 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	 f.setLayout(new GridLayout(1,1));
	 f.setSize(800, 600);
	 f.add(t);
	 f.setVisible(true);
	System.out.println("Teste");
}

}[/quote]

Blz! :thumbup:

ainda não deu certo… o problema deve estar em outra parte do código…
vou analisar mais… valeu pela ajuda!!!