Java Swing 4: Pestañas

2012-12-14 - Categorías: Java / Java Swing

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!

© 2024 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.