Para hacer un programa con pestañas repartiendo así los componentes se hace fácil con Swing y Eclipse. En pocos minutos, usando el generador de código esqueleto y con el Swing Designer te genera código.
Antes de poner el código, a saber, con el Swing Designer lo que tendremos será la ventana vacía, para poder posicionar los elementos tenemos que añadir en medio un Absolute layout. Luego dibujamos donde va a ir con el JTabbedPane. Después tenemos que añadir dos paneles encima del JTabbedPane, es decir, dos JPanel normales y corrientes. Las pestañas las creará el JTabbedPane cuando añadimos los paneles. Entonces ya tenemos las pestañas creadas, pero tenemos que decirle, en cada pestaña cómo vamos a posicionar los elementos y ponemos otros Absolute layout, uno en cada pestaña. Ahroa ya tenemos las pestañas y además podremos poner los elementos en la zona de la pestaña en que queramos, que en éste caso es una etiqueta JLabel en cada pestaña.
Aquí está el código:
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.border.EmptyBorder;
// Ésta es la clase principal
// es un JFrame...
public class Principal extends JFrame {
// el panel principal donde se pone todo
private JPanel contentPane;
// ejecuta primero todo ésto
public static void main(String[] args) {
// arranca en un hilo de ejecución...
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
// creando el frame y lo muestra
Principal frame = new Principal();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
// Constructor de la clase: se configura aquí toda
// la ventana y los controles...
public Principal() {
// título de la ventana
setTitle("Pestau00F1as con Swing by jnj");
// operación al cerra la ventana
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// coordenadas de las esquinas del frame en el escritorio
setBounds(100, 100, 419, 234);
// el panel que contiene todo se crea y se pone en el frame
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
// distribución nula para poder posicionar los elementos
// en las coordenadas que queramos
contentPane.setLayout(null);
// se crea el panel de pestañas
JTabbedPane panelDePestanas = new JTabbedPane(JTabbedPane.TOP);
// se posiciona en el panel
panelDePestanas.setBounds(10, 11, 383, 174);
contentPane.add(panelDePestanas);
// éste es el primer panel
// que se añade como pestaña al 'tabbedPane'
JPanel panel1 = new JPanel();
panelDePestanas.addTab("Panel 1", null, panel1, null);
// al panel le pongo distribución nula para
// posicionar los elementos en las coordenadas que
// quiera
panel1.setLayout(null);
// una etiqueta en el panel de la pestaña 1
JLabel lbl1 = new JLabel("Primera pestau00F1a..");
lbl1.setBounds(10, 11, 348, 14);
panel1.add(lbl1);
// otro panel de igual forma
JPanel panel2 = new JPanel();
panelDePestanas.addTab("Panel 2", null, panel2, null);
panel2.setLayout(null);
// otra etiqueta ésta vez en el segundo panel
JLabel lbl2 = new JLabel("Segunda pestau00F1a..");
lbl2.setBounds(10, 11, 290, 14);
panel2.add(lbl2);
}
}
Un saludo!
GRACIASSSSSSSSSSSSSSSSS
De nada, gracias por dejar un comentario.
Saludos Felix!