Home | Java |C # |SQL |Manuales |Videos |


7

La Clase JInternal Frame

imagePor herencia la clase JInternalFrame y sus clases descendientes (subclases directas) pueden utilizar los datos y/o métodos de la superclase JComponent de la librería swing y de las superclases container , Component y Object de la librería awt .
Esta clase permite tener objetos livianos que proporcione muchas de las características de un frame, incluyendo el desplazamiento, cierre, inserción de íconos, redimensionamiento, título y soporte para un menú bar.
El contentPane es manejado por una instancia de la clase JRootPane, la cual maneja una distribución de objetos y opcionalmente un menú bar para el frame interno.
Se recomienda el uso de un JDesktopPane para colocar los frames internos .

I.- JERARQUÍA DE CLASES
image
II.- MÉTODOS

CONSTRUCTORES
Constructor
Descripción
JInternalFrame ()
Crea un frame interno no redimensionable, no cerrable, no maximizable, no iconificable y sin título.
JInternalFrame (String título)
Crea un frame interno no redimensionable, no cerrable, no maximizable, no iconificable y con el título indicado como parámetro.
JInternalFrame (String título ,boolean resizable)
Crea un frame interno no cerrable, no maximizable, no iconificable pero con título y redimensionable.
JInternalFrame (String título ,boolean resizable ,boolean closable )
Crea un frame interno no maximizable, no iconificable pero con título, redimensionable y cerrable según los parámetros indicados.
JInternalFrame (String título ,boolean resizable ,boolean closable ,boolean maximizable )
Crea un frame interno no iconificable pero con título, redimensionable, cerrable y maximizable según los parámetros indicados.
JInternalFrame (String título ,boolean resizable ,boolean closable ,boolean maximizable ,boolean iconificable)
Crea un frame interno con título, redimensionable ,cerrable, maximizable e iconificable.
MÉTODOS
Tipo de retorno
Método
Descripción
void
dispose( )
Hace el frame interno invisible, no seleccionable y cerrado.
Container
getContentPane( )
Retorna el content Pane
int
getDefaultCloseOperation( )
Retorna el valor de la operación que ocurre cuando el usuario cierra el frame.
Component
getFocusOwner( )
Si el JInternalFrame es activo, retorna el elemento enfocado.
Icon
getFrameIcon( )
Retorna el icon mostrado en la línea de título del frame interno.
JMenuBar
getJMenuBar( )
Retorna el JMenuBar del frame interno , o nulo si no tiene.
Component
getMostRecentFocusOwner()
Retorna el elemento del frame interno que recibió el enfoque cuando el frame estuvo seleccionado.
String
getTitle( )
Retorna el título.
boolean
isClosable( )
Retorna true si el frame interno es cerrable, de lo contrario retorna falso.
boolean
isClosed( )
Retorna true si el frame interno está cerrado , de lo contrario retorna false.
boolean
isIcon( )
Retorna true si el frame interno tiene ícono , de lo contrario retorna false.
boolean
isMaximizable( )
Obtiene el valor de la propiedad maximizable.
boolean
isMaximum( )
Retorna true si el frame interno está maximizado de lo contrario retorna false.
boolean
isResizable( )
Retorna true si el frame interno es redimensionable de lo contrario retorna false.
boolean
isSelected( )
Retorna true si el frame interno está seleccionado de lo contrario retorna false.
void
remove(Component comp)
remueve el componente dado como parámetro de su contenedor.
void
reshape(int x, int y, int ancho,int alto)
Mueve y redimensiona al frame interno según el valor de los parámetros dados.
void
setClosable(boolean b)
Hace cerrable al frame interno si el valor del parámetro es true.
void
setClosed(boolean b)
Cierra el frame interno si el valor del parámetro dado es true.
void
setDefaultCloseOperation(int operation)
Define la operación que debe suceder por defecto cuando el usuario cierra el frame interno. El valor por defecto es HIDE_ON_CLOSE. Otros posibles valores son DO_NOTHING_ON_CLOSE y DISPOSE_ON_CLOSE
void
setFrameIcon(Icon icono)
Establece el icono en el frame interno.
void
setJmenuBar(JMenuBar menu)
Establece la barra de menú del frame interno con el menú dado como parámetro.
void
setLayout(LayoutManager manager)
Establece una distribución diferente a la establecida por defecto.
void
setMaximizable(boolean b)
Establece la propiedad maximizable a través del valor dado como parámetro.
void
setMaximum(boolean b)
Maximiza el frame interno.
void
setResizable(boolean b)
Establece la propiedad resized a través del valor dado como parámetro.
void
setSelected(boolean selected)
Selecciona o deselecciona el frame interno, según el valor del parámetro.
void
setTitle(String título)
Establece el título del frame interno.
void
show( )
Muestra el frame interno.
void
toBack( )
Envía el frame interno hacia adelante.
void
toFront( )
Envía el frame interno hacia adelante.

III.- EJEMPLOS
  1. Diseñe una aplicación que permita, a través de un botón colocar frame internos dentro del frame principal. Por cada frame que se crea debe asignarse un número correlativo. En la parte inferior colocar otro botón para cerrar todos los frames que fueron cerrados.

    • Creamos un nuevo proyecto al cual le agregamos un paquete y a este paquete le agregamos un JFrame Form de nombre Principal (Para ver como crear un proyecto con NetBeans visitar esta entrada).

      image
    • A este frame le daremos la propiedad de BorderLayout , para ello clic en el frame → SetLayout → BorderLayout ( si deseas saber mas sobre los layout visita este enlace ) ; una vez hecho esto colocaremos un JScrollPane en el centro ( para ello en la parte izquierda del NetBeans buscamos el JScroolPane y lo arrastramos al centro del frame ) y encima de el JScrollPane colocamos el JDesktopPane ; luego colocamos dos botones uno en el norte y otro en el sur ; así debe quedar el proyecto :

      image image
       

      numcommentsVE
      OBSERVACIÓN : El JDesktopPane es imprescindible en un frame que va a contener JInterlFrame . El ScrollPane contiene al JDesktop porque el contenido de éste puede sobrepasar su dimensión y en ese caso deben aparecer las barras de desplazamiento.

    • Una vez creada la interfaz, vamos a crear la lógica del programa : vamos a la pestaña Source para ir al código fuente y declaramos dos variables ( un contador y una posición inicial – lacual va a ser la posición en la cual aparecerá el primer JInternal Frame)
      public class Principal extends javax.swing.JFrame {
      private int contador=1;
      private int posicion=0;

      public Principal() {
      initComponents();
      setSize(400,400);}



    • Regresamos al diseño y hacemos doble clic en el botón Crear para programar la acción (nos llevará al método private void btnCreaActionPerformed(java.awt.event.ActionEvent evt) en la cual colocaremos lo siguiente :

      private void btnCreaActionPerformed(java.awt.event.ActionEvent evt) {                                        
      // TODO add your handling code here:
      creaInternalFrame();
      }
      public void creaInternalFrame(){
      JInternalFrame f = new JInternalFrame("InternalFrame "+contador,
      true, // cambia tamaño
      true, // se cierra
      true, // maximizable
      true // minimizable
      );
      f.setLocation(posicion*50 + 10, posicion*50+10);
      desktop.setPreferredSize(new Dimension(400+(posicion*50), 400+(posicion*50)));
      f.setSize(200,150);
      f.setBackground(new Color(200,255,255));// color de fondo
      desktop.add(f); // coloca en el desktop
      f.setVisible(true); // lo hace visible en primer plano
      contador++;
      posicion++;}



    • Ahora regresamos al diseño para darle la lógica al botón cerrar :

      private void btnCierraActionPerformed(java.awt.event.ActionEvent evt) {                                          
      // TODO add your handling code here:
      desktop.removeAll();
      desktop.repaint();
      contador=1;
      posicion=0;}



    • Hecho esto obtendremos lo siguinente : image


    • Si desean descargar el ejemplo visiten mi sitio en Skydrive (donde podrán encontrar mas ejemplos – En el menú de arriba encontrarán el enlace - ) o simplemente denle clic al boton descargar :


      btn_6



7 Comentarios:

Anónimo dijo...

ME PARECE QUE FALTARON LAS LIBRERIAS

Anónimo dijo...

Uyyesta muy bueno pero quisiera saber como se llama un jinternalframe des de un jmenubar. y como puedo utilizar un desktoppane..
ojala y me puedan ayudar...

Anónimo dijo...

Hola, muy buena ayuda.
Una pequeña observacion, el metodo isIcon() devuelve true si el JInternalFrame esta minimizado o false si no lo está.
Saludos

Anónimo dijo...

void setIconifiable(boolean)
boolean isIconifiable()
Establece y obtiene, respectivamente, si el usuario puede minimizar el frame interno.

Anónimo dijo...

hey esta muy bueno pero para que sirve desktop o q libreria tienes que mandar a llamar para que no te genere un error me da error en todas la lineas que contiene desktop si me puedes ayudar te lo agradecere mucho

necro dijo...

Excelentes ejemplos gracias por compartir

Anónimo dijo...

muy util la informacion me parecio muy interezante

Publicar un comentario

Ingresa tu comentario .... con el siguiente formato EMAIL - COMENTARIO para poder responderte :