Noticias

* Completa este formulario para conocer los temas de tu interes, te tomará unos segundos.
* Nuevos temas en CAKEPHP
* Ahora puedes bajar los proyectos finalizados!
* Sigue a la página para seguir creciendo!!

martes, 23 de julio de 2013

JPanel (Programación Java)

2 comentarios :
Entenderemos un JPanel como un contenedor en el cual podemos colocar y acomodar elementos (dentro del panel) y así luego se nos facilitará mover todos esos componentes relacionados de un lugar a otro solo moviendo el JPanel y no cada uno de los elementos que este contiene.

Lo primero que tenemos que hacer es importar la librería del JPanel:
 
import javax.swing.JPanel;
Una vez importada crearemos un objeto JPanel dentro de nuestra clase que extiende a JFrame, y luego crearemos una clase que extienda de JPanel.

Primero creamos un JLabel que colocaremos dentro de nuestra objeto JPanel:
 
/* Jlabel del Panel */
 private JLabel getLabelPanelVariable() {

  JLabel label = new JLabel();
  label.setText("Este es el panel desde una Variable");
  return label;
 }

Luego crearemos el objeto JPanel dentro de nuestra clase con el siguiente codigo.
 
 /* Se crea el panel */
 private JPanel getPanelVariable() {
  JPanel panelVariable = new JPanel();
  panelVariable.add(getLabelPanelVariable());
  // Se le asigna una posición dentro del JFrame 
  panelVariable.setBounds(10, 10, 375, 150);
  // Le asignamos un color solo para ver sus dimensiones 
  panelVariable.setBackground(Color.green);
  return panelVariable;

 }

Como se puede apreciar no es más complejo que lo que se ha venido viendo en este blog sobre java.

Ahora bien, en lo personal me gusta crear la clase para no tener todos los elementos que contenga el panel junto con los que tenga el JFrame o incluso si tenemos varios JPanel, entonces sacamos cada JPanel en una clase para mayor claridad.

Creamos nuestra clase y lo primero que tenemos que hacer es extender de JPanel, crear el inicializador y el constructor, luego crear todos los componentes e irlos agregando a la clase como cuando los agregabamos al JFrame.

 
import java.awt.Color;

import javax.swing.JLabel;
import javax.swing.JPanel;

@SuppressWarnings("serial")
public class ClasePanel extends JPanel {

 public ClasePanel() {

  add(getLabelPanelClase());
  inicializador();
 }

 private void inicializador() {
  setBounds(10, 170, 375, 150);
  setBackground(Color.ORANGE);
  setVisible(true);
 }

 /* Jlabel del panel */
 private JLabel getLabelPanelClase() {

  JLabel label = new JLabel();
  label.setText("Este es el panel desde una Clase");
  return label;
 }

}

Y acá está la clase donde se agregan tanto el objeto como la clase al JFrame:
 
import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

@SuppressWarnings("serial")
public class VentanaPaneles extends JFrame {

 public VentanaPaneles() {

  //Agregamos la Variable 
  add(getPanelVariable());
  // Agregamos la Clase 
  add(new ClasePanel());
  inicializador();
 }

 private void inicializador() {
  setLayout(null);
  setTitle("Paneles Java");
  setSize(400, 370);
  setVisible(true);
  setResizable(false);
  setDefaultCloseOperation(EXIT_ON_CLOSE);
 }

 // Jlabel del Panel 
 private JLabel getLabelPanelVariable() {

  JLabel label = new JLabel();
  label.setText("Este es el panel desde una Variable");
  return label;
 }

 /* Se crea el panel */
 private JPanel getPanelVariable() {
  JPanel panelVariable = new JPanel();
  panelVariable.add(getLabelPanelVariable());
  // Se le asigna una posición dentro del JFrame 
  panelVariable.setBounds(10, 10, 375, 150);
  // Le asignamos un color solo para ver sus dimensiones 
  panelVariable.setBackground(Color.green);
  return panelVariable;

 }

}
Y acá la documentación de Java para más información:
http://docs.oracle.com/javase/6/docs/api/javax/swing/JPanel.html


2 comentarios :

  1. Hola ! Muy bueno tu ejemplo, me gusta el código limpio y bien comentado para poder guiarnos, créeme, me ha sido de ayuda :) Quiero compartir otro código que también me sirvió para Algoritmia, en la cual también se maneja código limpio para usar el Jpanel.

    ResponderEliminar
    Respuestas
    1. Gracias y visité la página que recomendaste y está muy buena.

      Eliminar