Usando JTabbedPane

4 respostas
L

Tenho 4 classes, classCentral, class1, class2, class3.

TODAS AS CLASSES ESTÃO EM GRIDLAYOUT

class1, class2, class3 possuem um JTabbedPane cada uma!

Quero que os tres JTabbedPane apareçam na classCentral!!!Como faço??

4 Respostas

T

LucasVilarim

classCentral, class1, class2 e class3 são o que? JPanel? Por que você não adiciona os JTabbedPane direto no classCentral?

Enfim, baseado no pouco que você disse (e sem seu código para saber o que você tentou fazer), veja se é algo parecido com isso que você quer:

import javax.swing.*;
import java.awt.GridLayout;

public class Tab extends JFrame{
    public Tab(){
    	JTabbedPane tb1 = new JTabbedPane();
    	JTabbedPane tb2 = new JTabbedPane();
    	JTabbedPane tb3 = new JTabbedPane();

    	tb1.addTab("Teste 1", new JPanel());
    	tb2.addTab("Teste 2", new JPanel());
    	tb3.addTab("Teste 3", new JPanel());

    	JPanel class1 = new JPanel();
    	JPanel class2 = new JPanel();
    	JPanel class3 = new JPanel();

    	class1.add(tb1);
    	class2.add(tb2);
    	class3.add(tb3);

    	JPanel principal = new JPanel();

    	principal.setLayout(new GridLayout(3,1));

    	principal.add(class1);
    	principal.add(class2);
    	principal.add(class3);

    	this.getContentPane().add(principal);
    	this.setExtendedState(JFrame.MAXIMIZED_BOTH);
    	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }    

    public static void main(String args[]){
    	new Tab().setVisible(true);
    }
}

Abraço.

L

Fica assim, porem ainda está com problemas!!!

package pacote;


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.Object;

public class Class1 extends ClassCentral{
	Container c = getContentPane();
    JTabbedPane t1 = new JTabbedPane(JTabbedPane.TOP);
    
	Class1(){   
		 t1.setSize(new Dimension (1000, 700));
	}
}
-------------------------------------------------------------------------------
package pacote;


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.Object;

public class Class2 extends ClassCentral{
	Container c = getContentPane();
    JTabbedPane t2 = new JTabbedPane(JTabbedPane.TOP);
    
	Class2(){   
		 t2.setSize(new Dimension (1000, 700));
	}
}

-----------------------------------------------------------------------------------------

package pacote;


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.Object;

public class Class3 extends ClassCentral{
	Container c = getContentPane();
    JTabbedPane t3 = new JTabbedPane(JTabbedPane.TOP);
    
	Class3(){   
		 t3.setSize(new Dimension (1000, 700));
	}
}

------------------------------------------------------------------------------------

package pacote;

import java.awt.*;   
import java.awt.event.*;   
import javax.swing.*;
import javax.swing.GroupLayout.Alignment;
import javax.swing.LayoutStyle.ComponentPlacement;

public class ClassCentral extends JFrame{

	Container c = getContentPane();
	JPanel ClassCentral;
	JTabbedPane Panel, c1, c2, c3;
	ClassCentral cc1, cc2, cc3;
	
    Class1 p = new Class1();
    Class2 d = new Class2();
    Class3 u = new Class3();
    
	ClassCentral(){
		super ("Exemplo");
		setBackground(new Color(255, 255, 255));
		setSize(1000, 700);
		 setVisible(true);
		 setLocationRelativeTo(null);  
		 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		 
		 c.setLayout(new GridLayout(1, 0));
		 
		 
		        Panel = new JTabbedPane(JTabbedPane.TOP);
		        tp1.c1 = p.t1;
			Panel.addTab("Painel 1", null, tp1, null);
			tp2.c2 = d.t2;
			Panel.addTab("Painel 2", null, tp2, null);
			tp3.c3 = u.t3;
			Panel.addTab("Painel 3", null, tp3, null);
			 	 
		   c.add(Panel);
	}
	
	public static void main(String[] args) {
    JFrame Janela= new ClassCentral();
   Janela.show();
   WindowListener x= new WindowAdapter(){
       public void windowClosing(WindowEvent e){
           System.exit(0);
       }
   };
Janela.addWindowListener(x);

}
}
T

LucasVilarim

Deixa eu te dizer uma coisa: dizer que “está com problema” quase não ajuda. É preciso dizer qual problema aparece, qual mensagem de erro ocorre, pra facilitar a solução. Só dizer que “está com problemas” é o mesmo que chegar para um médico e dizer “estou sentindo dor”, sem dizer em que parte do corpo nem quando começou a doer. Ele vai ter que adivinhar e o jeito dele fazer isso é cutucar seu corpo até você gritar.

Tentei rodar seu código aqui mas ele tem erros que aparentemente não tem a ver com o GridLayout nem com o JTabbedPane. Pra começar, os objetos tp1, tp2 e tp3 (lá pela linha 30 do seu código) sequer existem no seu código. O que são eles e qual seu objetivo? Começe acertando por aí. Se você explicar o que estava tentando fazer, creio que também ficará mais fácil pra te ajudar.

Abraço.

S

Se você deseja que class1, 2 e 3 sejam abas em um JTabbedPane na classCentral, é melhor fazer com que class1, 2 e 3 sejam JPanel e aí vc adiciona em um único JTabbedPane na classCentral.

Criado 18 de setembro de 2012
Ultima resposta 21 de set. de 2012
Respostas 4
Participantes 3