SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
GUIA 4
                                                                    Facultad: Ingeniería
Uso de Swing básico.
                                                                    Escuela: Computación
                                                                    Asignatura: Java.

I.OBJETIVOS


       Que el estudiante aplique los conceptos teóricos de Swing.
       Que el estudiante pueda identificar las instrucciones del Swing en NetBeans IDE
       6.1.


II. INTRODUCCIÓN TEÓRICA


Introducción a Swing:
Swing es una biblioteca gráfica para Java que forma parte de las Java Foundation
Classes (JFC). Incluye widgets para interfaz gráfica de usuario tales como cajas de texto,
botones, desplegables y tablas.

Historia
La Internet Foundation Classes (IFC) era una biblioteca gráfica para el lenguaje de
programación Java desarrollada originalmente por Netscape y que se publicó en 1996.

Desde sus inicios el entorno Java ya contaba con una biblioteca de componentes gráficos
conocida como AWT. Esta biblioteca estaba concebida como una API estandarizada que
permitía utilizar los componentes nativos de cada sistema operativo.


Ventajas:
  * El diseño en Java puro posee menos limitaciones de plataforma.
  * El desarrollo de componentes Swing es más activo.
  * Los componentes de Swing soportan más características.

Desventajas:
  * La mayoría de los browsers no incluyen clases swing, por lo que es necesario utilizar
     un plugin java.




                                                                           GUÍA 4   pág. 1
* Los componentes swing generalmente son más lentos y presentan más
    problemas debido a que están hechos en Java puro, y suelen presentar problemas
    relacionados con vídeo en varias plataformas.
  * No siempre tienen el mismo aspecto que en el sistema donde fueron diseñados.


III. PROCEDIMIENTO


Ejemplo 1:

Nombre de la Clase: HolaMundoSwing.java

Creación y visualizar una ventana

La ventana principal de la aplicación debe ser JFrame. El siguiente código crea un
JFrame, lo cual agrega dentro una etiqueta JLabel que pone "Hola mundo" y lo muestra
en pantalla.




                                                                       GUÍA 4      pág. 2
Ejemplo 2:

Nombre de la Clase: PruebaMarcoSencillo.java

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

     public class HolaMundoSwing {
     /** Creates a new instance of HolaMundoSwing */
     public HolaMundoSwing() {
     }
     /**
     * @param args the command line arguments
     */
     public static void main(String[] args) {
     // TODO code application logic here
     JFrame frame = new JFrame("HolaMundoSwing");// Se crea el JFramen.
     JLabel label = new JLabel("Hola Mundo");// Se crea el JLabel.
     frame.getContentPane().add(label);//se introduce el label al frame

     // Para que termine la aplicación al pulsar la x de arriba a la derecha.
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.pack();// Se hace que JFrame tenga el tamaño justo para que quepa el
                          JLabel
     frame.setVisible(true);// Se visualiza.

     }
     }


Creación de un marco.

Las ventanas de nivel superior (esto es, las que no están dentro de otra ventana) reciben
el nombre de Marco en Java. La biblioteca AWT posee una clase llamada Frame que
sirve para este tipo de ventana. La versión de Swing de esta clase se denomina JFrame y
extiende (hereda) a la clase Frame.




                                                                          GUÍA 4   pág. 3
import javax.swing.JFrame;
        /**
        *
        * @author Santiago José Campos Robles.
        */
        public class PruebaMarcoSencillo
        {
        /** Creates a new instance of PruebaMarcoSencillo */
        public PruebaMarcoSencillo() {
        }
        /**
        * @param args the command line arguments
        */
        public static void main(String[] args)
        {
        // TODO code application logic here
        MarcoSencillo marco = new MarcoSencillo();
        marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        marco.setVisible(true);
        }
        }
        class MarcoSencillo extends JFrame
        {
        public MarcoSencillo()
        {
        setSize(ANCHURA_PREFIJADA, ALTURA_PREFIJADA);
        }

        public static final int ANCHURA_PREFIJADA=300;
        public static final int ALTURA_PREFIJADA=200;
        }




Vamos a revisar este programa línea por línea.
Las clases de Swing se encuentran en el paquete Javax.swing. El nombre del paquete,
javax, indica que se trata de un paquete de extensión de Java, y no de un paquete de
base. Las clases de Swing son, ciertamente una extensión de java 1.1. Pero en Java 2, el
paquete Swing ya no es una extensión, sino que forma parte de la jerarquía básica.

De forma predeterminada, los marcos tienen un tamaño más bien inútil de 0x0 píxeles.
Nosotros definimos la subclase MarcoSencillo cuyo constructor especifica un tamaño de
300x200 píxeles. En el método main de la clase PruebaMarcoSencillo, empezamos por
construir un objeto de tipo MarcoSencillo.




                                                                         GUÍA 4    pág. 4
A continuación, definimos lo que debe ocurrir cuando el usuario cierra este
marco. Para este programa en particular, deseamos que el programa concluya. Para
seleccionar este comportamiento, empleamos la sentencia:

             Marco.SetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

En otros programas con múltiples marcos no desearíamos que el programa concluyera
solo porque el usuario cierre uno de los marcos. De forma predeterminada, el marco se
oculta cuando el usuario lo cierra, pero el programa no concluye.
No basta construir un marco para que se visualice automáticamente. Los marcos nacen
invisibles. Esto da al programador la posibilidad de añadir componentes al marco antes de
mostrarlo por primera vez. Para mostrar al marco, el método main llama al método
setVisible del marco.
A partir de JDK 1.4, se pueden desactivar todos los adornos del marco llamado a
marco.setUndecorated(true);



Ejemplo 3:

Nombre de la Clase: PruebaMarcoCentrado.java

La clase JFrame en si posee únicamente unos pocos métodos para modificar el aspecto
que tiene los marcos. Por supuesto, mediante la magia de la herencia, la mayoría de los
métodos que sirva para trabajar con el tamaño y posición del marco provienen de las
distintas superclases de JFrame. Entre los métodos más importantes cabe mencionar los
que siguen:
    • El método dispose que cierra la ventana y recupera los posibles recursos del
        sistema empleados para crearla.
    • El método setIconImage, que admite un objeto de tipo Image y lo utiliza como
        icono cuando se minimiza la ventana.
    • El método setTitle que sirve para cambiar el texto que aparece en la barra de
        título.
    • El método setResizable, que admite un bolean y determina si el usuario va a
        poder o no cambiar el tamaño del marco.




                                                                          GUÍA 4   pág. 5
import java.awt.*;
         import java.awt.event.*;
         import javax.swing.*;
         public class PruebaMarcoCentrado {
            /** Creates a new instance of PruebaMarcoCentrado */
            public PruebaMarcoCentrado() {
            }
            /**
             * @param args the command line arguments
             */
            public static void main(String[] args) {
               // TODO code application logic here
               MarcoCentrado marco = new MarcoCentrado();
               marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
               //marco.setExtendedState(Frame.MAXIMIZED_BOTH);
               marco.setVisible(true);
            }
         }
         class MarcoCentrado extends JFrame
         {
            public MarcoCentrado()
            {
               Toolkit Kit = Toolkit.getDefaultToolkit();
               Dimension tamanoPantalla = Kit.getScreenSize();
               int alturaPantalla = tamanoPantalla.height;
               int anchuraPantalla = tamanoPantalla.width;


             setSize(anchuraPantalla/2, alturaPantalla/2);
             setLocation(anchuraPantalla/4, alturaPantalla/4);

              Image img = Kit.getImage("uvas.jpg");
              setIconImage(img);
              setTitle("Marco Centrado");
             }
         }

Explicación del código más relevante:
Para averiguar el tamaño de la pantalla, se ha llamado al método estático getDefaulToolkit
de la clase Toolkit para obtener el objeto Toolkit. A continuación, llama al método
getScreenSize, que proporciona el tamaño de la pantalla en la forma de un objeto de tipo
Dimension. Los objetos Dimension contiene simultáneamente una anchura y una altura.

Nota: Pruebe agregando el siguiente código:
Marco.setExtendedState(Frame.MAXIMIZED_BOTH);



                                                                           GUÍA 4   pág. 6
MANEJO DE EVENTOS:

El manejo de eventos es de vital importancia capital para los programas que posee una
interfaz de usuario gráfica. Para implementar las interfaces de usuario, es preciso dominar
la forma en que Java maneja los eventos.

Bases del manejo de eventos

Todo entorno operativo que admite GUI monitoriza constantemente los eventos tales
como teclas pulsadas o clic de ratón. El entorno operativo notifica estos eventos a los
programas que están en ejecución. Entonces cada programa decide lo que debe hacer, si
procede, como respuesta a estos eventos.

Dentro de los límites de los eventos que resultan conocidas para AWT, tenemos un
completo control de la forma en que se transmiten los eventos desde las fuentes de
eventos (como los botones o las barras de desplazamiento) hasta los oyentes de eventos.
Cualquier objeto puede ser nombrado oyente de eventos; en la práctica, seleccionaremos
un objeto que puede llevar a cabo de forma cómoda la respuesta deseada para ese
evento.

En resumen, véase un esquema general de la forma en que funciona el manejo de
eventos en AWT.
   • Un objeto oyente es un ejemplar de una clase que implementa una interfaz
       denominada una interfaz de oyente.
   • Una fuente de eventos es un objeto en que se pueden registrar objetos oyentes y
       enviar a esos objetos otros objetos de eventos.
   • La fuente de eventos envía objetos de eventos a todos los oyentes registrados en
       ella cuando se produce un evento.
   • Los objetos oyentes utilizarán entonces la información contenida en el objeto de
       evento para determinar su reacción frente al evento.
Para registrar un objeto oyente en el objeto fuente se emplean unas líneas de código cuyo
modelo es similar al siguiente:
          objetoFuentedeEventos.addEvenListener(objetoOyentedeEventos)

Véase un ejemplo:

ActionListener oyente =…;
JButton boton = new JButton(“OK”);
boton.addActionListener(oyente);

ahora el objeto oyente recibe una notificación siempre que se produce un “evento de
acción” en el botón. Para los botones, como cabe esperar, un evento de acción es un clic
en el botón.
Ejemplo 4:


                                                                           GUÍA 4    pág. 7
Nombre de la Clase: PruebaBoxLayout.java




 import java.awt.Component;
 import javax.swing.BoxLayout;
 import javax.swing.JButton;
 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.WindowConstants;

 public class PruebaBoxLayout
 {
   /** Creates a new instance of PruebaBoxLayout */
   public PruebaBoxLayout()
   {
   }
   /**
    * @param args the command line arguments
    */
   public static void main(String[] args)
   {
      // TODO code application logic here
      JFrame v = new JFrame("Ejemplo Utilizando BoxLayout");
      v.getContentPane().setLayout(new
 BoxLayout(v.getContentPane(),BoxLayout.Y_AXIS));
      // Se crea un botón centrado y se añade
                 JButton boton = new JButton("Bienvenidos a NetBeans IDE 6.1");
                 boton.setAlignmentX(Component.CENTER_ALIGNMENT);
                 v.getContentPane().add(boton);
                 // Se crea una etiqueta centrada y se añade
                 JLabel etiqueta = new JLabel("El Segundo Examen es de Interfaz
 Gráfica.!!!!!");
                 etiqueta.setAlignmentX(Component.CENTER_ALIGNMENT);
                 v.getContentPane().add(etiqueta);
                 v.pack();
                 v.setVisible(true);// Visualizar la ventana

         v.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
     }
 }




                                                                        GUÍA 4    pág. 8
GUÍA 4   pág. 9

Más contenido relacionado

La actualidad más candente

Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de controlElena Perz
 
[ES] Manejo de datos y excepciones
[ES] Manejo de datos y excepciones[ES] Manejo de datos y excepciones
[ES] Manejo de datos y excepcionesEudris Cabrera
 
Programación multitarea
Programación multitareaProgramación multitarea
Programación multitareabowelmx
 
Programación orientada a objetos (I)
Programación orientada a objetos (I)Programación orientada a objetos (I)
Programación orientada a objetos (I)Cristian
 
Paquetes De Programacion
Paquetes De ProgramacionPaquetes De Programacion
Paquetes De Programaciontibu85
 
Portafolio parcial 2
Portafolio parcial 2Portafolio parcial 2
Portafolio parcial 2EmmanuelAv
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño Ijjegonzalezf
 
Curso de iniciacion a la programacion con visual basic net
Curso de iniciacion a la programacion con visual basic netCurso de iniciacion a la programacion con visual basic net
Curso de iniciacion a la programacion con visual basic netSauro Ortiz
 
Ejercicios de evaluación de fundametnos de programacion en JAva
Ejercicios de evaluación de fundametnos de programacion en JAvaEjercicios de evaluación de fundametnos de programacion en JAva
Ejercicios de evaluación de fundametnos de programacion en JAvaMartha Beatriz Coronado Rosales
 
Junit con netbeans
Junit con netbeansJunit con netbeans
Junit con netbeansbachispasaca
 
C6 net beansentradasysalidas
C6 net beansentradasysalidasC6 net beansentradasysalidas
C6 net beansentradasysalidasalenco
 

La actualidad más candente (20)

Semana 2 Clases y Objetos en Java
Semana 2   Clases y Objetos en JavaSemana 2   Clases y Objetos en Java
Semana 2 Clases y Objetos en Java
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Enclausulamiento java
Enclausulamiento javaEnclausulamiento java
Enclausulamiento java
 
Semana 3 Herencia en Java
Semana 3   Herencia en JavaSemana 3   Herencia en Java
Semana 3 Herencia en Java
 
[ES] Manejo de datos y excepciones
[ES] Manejo de datos y excepciones[ES] Manejo de datos y excepciones
[ES] Manejo de datos y excepciones
 
Programación multitarea
Programación multitareaProgramación multitarea
Programación multitarea
 
Ppt java
Ppt javaPpt java
Ppt java
 
Comandos java
Comandos javaComandos java
Comandos java
 
Programación orientada a objetos (I)
Programación orientada a objetos (I)Programación orientada a objetos (I)
Programación orientada a objetos (I)
 
Paquetes De Programacion
Paquetes De ProgramacionPaquetes De Programacion
Paquetes De Programacion
 
2.11.gui ejercicio swing-holaadios
2.11.gui ejercicio swing-holaadios2.11.gui ejercicio swing-holaadios
2.11.gui ejercicio swing-holaadios
 
Portafolio parcial 2
Portafolio parcial 2Portafolio parcial 2
Portafolio parcial 2
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Curso de iniciacion a la programacion con visual basic net
Curso de iniciacion a la programacion con visual basic netCurso de iniciacion a la programacion con visual basic net
Curso de iniciacion a la programacion con visual basic net
 
Unidad i poo avanzada
Unidad i   poo avanzadaUnidad i   poo avanzada
Unidad i poo avanzada
 
Ejercicios de evaluación de fundametnos de programacion en JAva
Ejercicios de evaluación de fundametnos de programacion en JAvaEjercicios de evaluación de fundametnos de programacion en JAva
Ejercicios de evaluación de fundametnos de programacion en JAva
 
Junit con netbeans
Junit con netbeansJunit con netbeans
Junit con netbeans
 
C6 net beansentradasysalidas
C6 net beansentradasysalidasC6 net beansentradasysalidas
C6 net beansentradasysalidas
 
Java 1
Java 1Java 1
Java 1
 
Hilos – threads en java
Hilos – threads   en javaHilos – threads   en java
Hilos – threads en java
 

Destacado

Guía de Laboratorio 1 - VB.NET 2005
Guía de Laboratorio 1 - VB.NET 2005Guía de Laboratorio 1 - VB.NET 2005
Guía de Laboratorio 1 - VB.NET 2005Jose Ponce
 
Guia de Laboratorios 6 - VB.NET 2005
Guia de Laboratorios 6 - VB.NET 2005Guia de Laboratorios 6 - VB.NET 2005
Guia de Laboratorios 6 - VB.NET 2005Jose Ponce
 
Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005Jose Ponce
 
Guia de Laboratorios 2 - VB.NET 2005
Guia de Laboratorios 2 - VB.NET 2005Guia de Laboratorios 2 - VB.NET 2005
Guia de Laboratorios 2 - VB.NET 2005Jose Ponce
 
Guia de Laboratorios 3 - VB.NET 2005
Guia de Laboratorios 3 - VB.NET 2005Guia de Laboratorios 3 - VB.NET 2005
Guia de Laboratorios 3 - VB.NET 2005Jose Ponce
 
Proyecto, PHP y MySQL
Proyecto, PHP y MySQLProyecto, PHP y MySQL
Proyecto, PHP y MySQLyanburbano
 
Guia N5 Proyectos Web Consultas Php Y My Sql
Guia N5   Proyectos Web   Consultas Php Y My SqlGuia N5   Proyectos Web   Consultas Php Y My Sql
Guia N5 Proyectos Web Consultas Php Y My SqlJose Ponce
 
Guia N3 Proyectos Web Php Css, Js
Guia N3   Proyectos Web   Php Css, JsGuia N3   Proyectos Web   Php Css, Js
Guia N3 Proyectos Web Php Css, JsJose Ponce
 
Guia N1 Proyectos Web Html
Guia N1   Proyectos Web   HtmlGuia N1   Proyectos Web   Html
Guia N1 Proyectos Web HtmlJose Ponce
 
Guia N2 Proyectos Web Php
Guia N2   Proyectos Web   PhpGuia N2   Proyectos Web   Php
Guia N2 Proyectos Web PhpJose Ponce
 
Guia N4 Proyectos Web My Sql Y Php
Guia N4   Proyectos Web   My Sql Y PhpGuia N4   Proyectos Web   My Sql Y Php
Guia N4 Proyectos Web My Sql Y PhpJose Ponce
 
Aplicación de escritorio con java
Aplicación de escritorio con javaAplicación de escritorio con java
Aplicación de escritorio con javaEmerson Garay
 

Destacado (20)

Guia1 java
Guia1 javaGuia1 java
Guia1 java
 
Guia2 java
Guia2 javaGuia2 java
Guia2 java
 
Guia3 java
Guia3 javaGuia3 java
Guia3 java
 
Guia8 java
Guia8 javaGuia8 java
Guia8 java
 
Guía de Laboratorio 1 - VB.NET 2005
Guía de Laboratorio 1 - VB.NET 2005Guía de Laboratorio 1 - VB.NET 2005
Guía de Laboratorio 1 - VB.NET 2005
 
HTML
HTMLHTML
HTML
 
Guia de Laboratorios 6 - VB.NET 2005
Guia de Laboratorios 6 - VB.NET 2005Guia de Laboratorios 6 - VB.NET 2005
Guia de Laboratorios 6 - VB.NET 2005
 
Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005
 
Guia de Laboratorios 2 - VB.NET 2005
Guia de Laboratorios 2 - VB.NET 2005Guia de Laboratorios 2 - VB.NET 2005
Guia de Laboratorios 2 - VB.NET 2005
 
Guia de Laboratorios 3 - VB.NET 2005
Guia de Laboratorios 3 - VB.NET 2005Guia de Laboratorios 3 - VB.NET 2005
Guia de Laboratorios 3 - VB.NET 2005
 
Proyecto, PHP y MySQL
Proyecto, PHP y MySQLProyecto, PHP y MySQL
Proyecto, PHP y MySQL
 
Guia N5 Proyectos Web Consultas Php Y My Sql
Guia N5   Proyectos Web   Consultas Php Y My SqlGuia N5   Proyectos Web   Consultas Php Y My Sql
Guia N5 Proyectos Web Consultas Php Y My Sql
 
Guia N3 Proyectos Web Php Css, Js
Guia N3   Proyectos Web   Php Css, JsGuia N3   Proyectos Web   Php Css, Js
Guia N3 Proyectos Web Php Css, Js
 
Guia N1 Proyectos Web Html
Guia N1   Proyectos Web   HtmlGuia N1   Proyectos Web   Html
Guia N1 Proyectos Web Html
 
Guia7 java
Guia7 javaGuia7 java
Guia7 java
 
Guia N2 Proyectos Web Php
Guia N2   Proyectos Web   PhpGuia N2   Proyectos Web   Php
Guia N2 Proyectos Web Php
 
Guia6 java
Guia6 javaGuia6 java
Guia6 java
 
Guia5 java
Guia5 javaGuia5 java
Guia5 java
 
Guia N4 Proyectos Web My Sql Y Php
Guia N4   Proyectos Web   My Sql Y PhpGuia N4   Proyectos Web   My Sql Y Php
Guia N4 Proyectos Web My Sql Y Php
 
Aplicación de escritorio con java
Aplicación de escritorio con javaAplicación de escritorio con java
Aplicación de escritorio con java
 

Similar a Guia4 java

Similar a Guia4 java (20)

Programacion en JAVA 2
Programacion en JAVA 2Programacion en JAVA 2
Programacion en JAVA 2
 
Java tema06a
Java tema06aJava tema06a
Java tema06a
 
Semana9 Vbr
Semana9 VbrSemana9 Vbr
Semana9 Vbr
 
Ejemplo de un codigo a través de un lenguaje de programacion llamado java
Ejemplo de un codigo a través de un lenguaje de programacion llamado javaEjemplo de un codigo a través de un lenguaje de programacion llamado java
Ejemplo de un codigo a través de un lenguaje de programacion llamado java
 
Jyoc java-cap18 swing y java fx
Jyoc java-cap18 swing y java fxJyoc java-cap18 swing y java fx
Jyoc java-cap18 swing y java fx
 
Interfaces graficas(1)
Interfaces graficas(1)Interfaces graficas(1)
Interfaces graficas(1)
 
Java
JavaJava
Java
 
Manuales seminario java-manualdejava-sem 3 - 4
Manuales seminario java-manualdejava-sem 3 - 4Manuales seminario java-manualdejava-sem 3 - 4
Manuales seminario java-manualdejava-sem 3 - 4
 
Clase
ClaseClase
Clase
 
Tutorial java fx_8_espanol
Tutorial java fx_8_espanolTutorial java fx_8_espanol
Tutorial java fx_8_espanol
 
Flow layout
Flow layoutFlow layout
Flow layout
 
PRUEBA OFIMATICA WEB
PRUEBA OFIMATICA WEBPRUEBA OFIMATICA WEB
PRUEBA OFIMATICA WEB
 
Codificacion de clases en java con NetBeans
Codificacion de clases en java con NetBeansCodificacion de clases en java con NetBeans
Codificacion de clases en java con NetBeans
 
Clase celulares
Clase celularesClase celulares
Clase celulares
 
Java
JavaJava
Java
 
Guia practica secuenciales eclipse java 01
Guia practica secuenciales eclipse java 01Guia practica secuenciales eclipse java 01
Guia practica secuenciales eclipse java 01
 
2 daoo introduccion_java
2 daoo introduccion_java2 daoo introduccion_java
2 daoo introduccion_java
 
Interfaces Usuario 3
Interfaces Usuario 3Interfaces Usuario 3
Interfaces Usuario 3
 
Eventos
EventosEventos
Eventos
 
1TAP Tema 1-GUI.pptx
1TAP Tema 1-GUI.pptx1TAP Tema 1-GUI.pptx
1TAP Tema 1-GUI.pptx
 

Más de odelys2003

Más de odelys2003 (6)

Curso de redes
Curso de redesCurso de redes
Curso de redes
 
Introduccion2
Introduccion2Introduccion2
Introduccion2
 
S
SS
S
 
Sisoper
SisoperSisoper
Sisoper
 
Sistoper
SistoperSistoper
Sistoper
 
Guia
GuiaGuia
Guia
 

Último

OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 

Último (20)

OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 

Guia4 java

  • 1. GUIA 4 Facultad: Ingeniería Uso de Swing básico. Escuela: Computación Asignatura: Java. I.OBJETIVOS Que el estudiante aplique los conceptos teóricos de Swing. Que el estudiante pueda identificar las instrucciones del Swing en NetBeans IDE 6.1. II. INTRODUCCIÓN TEÓRICA Introducción a Swing: Swing es una biblioteca gráfica para Java que forma parte de las Java Foundation Classes (JFC). Incluye widgets para interfaz gráfica de usuario tales como cajas de texto, botones, desplegables y tablas. Historia La Internet Foundation Classes (IFC) era una biblioteca gráfica para el lenguaje de programación Java desarrollada originalmente por Netscape y que se publicó en 1996. Desde sus inicios el entorno Java ya contaba con una biblioteca de componentes gráficos conocida como AWT. Esta biblioteca estaba concebida como una API estandarizada que permitía utilizar los componentes nativos de cada sistema operativo. Ventajas: * El diseño en Java puro posee menos limitaciones de plataforma. * El desarrollo de componentes Swing es más activo. * Los componentes de Swing soportan más características. Desventajas: * La mayoría de los browsers no incluyen clases swing, por lo que es necesario utilizar un plugin java. GUÍA 4 pág. 1
  • 2. * Los componentes swing generalmente son más lentos y presentan más problemas debido a que están hechos en Java puro, y suelen presentar problemas relacionados con vídeo en varias plataformas. * No siempre tienen el mismo aspecto que en el sistema donde fueron diseñados. III. PROCEDIMIENTO Ejemplo 1: Nombre de la Clase: HolaMundoSwing.java Creación y visualizar una ventana La ventana principal de la aplicación debe ser JFrame. El siguiente código crea un JFrame, lo cual agrega dentro una etiqueta JLabel que pone "Hola mundo" y lo muestra en pantalla. GUÍA 4 pág. 2
  • 3. Ejemplo 2: Nombre de la Clase: PruebaMarcoSencillo.java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class HolaMundoSwing { /** Creates a new instance of HolaMundoSwing */ public HolaMundoSwing() { } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here JFrame frame = new JFrame("HolaMundoSwing");// Se crea el JFramen. JLabel label = new JLabel("Hola Mundo");// Se crea el JLabel. frame.getContentPane().add(label);//se introduce el label al frame // Para que termine la aplicación al pulsar la x de arriba a la derecha. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack();// Se hace que JFrame tenga el tamaño justo para que quepa el JLabel frame.setVisible(true);// Se visualiza. } } Creación de un marco. Las ventanas de nivel superior (esto es, las que no están dentro de otra ventana) reciben el nombre de Marco en Java. La biblioteca AWT posee una clase llamada Frame que sirve para este tipo de ventana. La versión de Swing de esta clase se denomina JFrame y extiende (hereda) a la clase Frame. GUÍA 4 pág. 3
  • 4. import javax.swing.JFrame; /** * * @author Santiago José Campos Robles. */ public class PruebaMarcoSencillo { /** Creates a new instance of PruebaMarcoSencillo */ public PruebaMarcoSencillo() { } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here MarcoSencillo marco = new MarcoSencillo(); marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); marco.setVisible(true); } } class MarcoSencillo extends JFrame { public MarcoSencillo() { setSize(ANCHURA_PREFIJADA, ALTURA_PREFIJADA); } public static final int ANCHURA_PREFIJADA=300; public static final int ALTURA_PREFIJADA=200; } Vamos a revisar este programa línea por línea. Las clases de Swing se encuentran en el paquete Javax.swing. El nombre del paquete, javax, indica que se trata de un paquete de extensión de Java, y no de un paquete de base. Las clases de Swing son, ciertamente una extensión de java 1.1. Pero en Java 2, el paquete Swing ya no es una extensión, sino que forma parte de la jerarquía básica. De forma predeterminada, los marcos tienen un tamaño más bien inútil de 0x0 píxeles. Nosotros definimos la subclase MarcoSencillo cuyo constructor especifica un tamaño de 300x200 píxeles. En el método main de la clase PruebaMarcoSencillo, empezamos por construir un objeto de tipo MarcoSencillo. GUÍA 4 pág. 4
  • 5. A continuación, definimos lo que debe ocurrir cuando el usuario cierra este marco. Para este programa en particular, deseamos que el programa concluya. Para seleccionar este comportamiento, empleamos la sentencia: Marco.SetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); En otros programas con múltiples marcos no desearíamos que el programa concluyera solo porque el usuario cierre uno de los marcos. De forma predeterminada, el marco se oculta cuando el usuario lo cierra, pero el programa no concluye. No basta construir un marco para que se visualice automáticamente. Los marcos nacen invisibles. Esto da al programador la posibilidad de añadir componentes al marco antes de mostrarlo por primera vez. Para mostrar al marco, el método main llama al método setVisible del marco. A partir de JDK 1.4, se pueden desactivar todos los adornos del marco llamado a marco.setUndecorated(true); Ejemplo 3: Nombre de la Clase: PruebaMarcoCentrado.java La clase JFrame en si posee únicamente unos pocos métodos para modificar el aspecto que tiene los marcos. Por supuesto, mediante la magia de la herencia, la mayoría de los métodos que sirva para trabajar con el tamaño y posición del marco provienen de las distintas superclases de JFrame. Entre los métodos más importantes cabe mencionar los que siguen: • El método dispose que cierra la ventana y recupera los posibles recursos del sistema empleados para crearla. • El método setIconImage, que admite un objeto de tipo Image y lo utiliza como icono cuando se minimiza la ventana. • El método setTitle que sirve para cambiar el texto que aparece en la barra de título. • El método setResizable, que admite un bolean y determina si el usuario va a poder o no cambiar el tamaño del marco. GUÍA 4 pág. 5
  • 6. import java.awt.*; import java.awt.event.*; import javax.swing.*; public class PruebaMarcoCentrado { /** Creates a new instance of PruebaMarcoCentrado */ public PruebaMarcoCentrado() { } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here MarcoCentrado marco = new MarcoCentrado(); marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //marco.setExtendedState(Frame.MAXIMIZED_BOTH); marco.setVisible(true); } } class MarcoCentrado extends JFrame { public MarcoCentrado() { Toolkit Kit = Toolkit.getDefaultToolkit(); Dimension tamanoPantalla = Kit.getScreenSize(); int alturaPantalla = tamanoPantalla.height; int anchuraPantalla = tamanoPantalla.width; setSize(anchuraPantalla/2, alturaPantalla/2); setLocation(anchuraPantalla/4, alturaPantalla/4); Image img = Kit.getImage("uvas.jpg"); setIconImage(img); setTitle("Marco Centrado"); } } Explicación del código más relevante: Para averiguar el tamaño de la pantalla, se ha llamado al método estático getDefaulToolkit de la clase Toolkit para obtener el objeto Toolkit. A continuación, llama al método getScreenSize, que proporciona el tamaño de la pantalla en la forma de un objeto de tipo Dimension. Los objetos Dimension contiene simultáneamente una anchura y una altura. Nota: Pruebe agregando el siguiente código: Marco.setExtendedState(Frame.MAXIMIZED_BOTH); GUÍA 4 pág. 6
  • 7. MANEJO DE EVENTOS: El manejo de eventos es de vital importancia capital para los programas que posee una interfaz de usuario gráfica. Para implementar las interfaces de usuario, es preciso dominar la forma en que Java maneja los eventos. Bases del manejo de eventos Todo entorno operativo que admite GUI monitoriza constantemente los eventos tales como teclas pulsadas o clic de ratón. El entorno operativo notifica estos eventos a los programas que están en ejecución. Entonces cada programa decide lo que debe hacer, si procede, como respuesta a estos eventos. Dentro de los límites de los eventos que resultan conocidas para AWT, tenemos un completo control de la forma en que se transmiten los eventos desde las fuentes de eventos (como los botones o las barras de desplazamiento) hasta los oyentes de eventos. Cualquier objeto puede ser nombrado oyente de eventos; en la práctica, seleccionaremos un objeto que puede llevar a cabo de forma cómoda la respuesta deseada para ese evento. En resumen, véase un esquema general de la forma en que funciona el manejo de eventos en AWT. • Un objeto oyente es un ejemplar de una clase que implementa una interfaz denominada una interfaz de oyente. • Una fuente de eventos es un objeto en que se pueden registrar objetos oyentes y enviar a esos objetos otros objetos de eventos. • La fuente de eventos envía objetos de eventos a todos los oyentes registrados en ella cuando se produce un evento. • Los objetos oyentes utilizarán entonces la información contenida en el objeto de evento para determinar su reacción frente al evento. Para registrar un objeto oyente en el objeto fuente se emplean unas líneas de código cuyo modelo es similar al siguiente: objetoFuentedeEventos.addEvenListener(objetoOyentedeEventos) Véase un ejemplo: ActionListener oyente =…; JButton boton = new JButton(“OK”); boton.addActionListener(oyente); ahora el objeto oyente recibe una notificación siempre que se produce un “evento de acción” en el botón. Para los botones, como cabe esperar, un evento de acción es un clic en el botón. Ejemplo 4: GUÍA 4 pág. 7
  • 8. Nombre de la Clase: PruebaBoxLayout.java import java.awt.Component; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.WindowConstants; public class PruebaBoxLayout { /** Creates a new instance of PruebaBoxLayout */ public PruebaBoxLayout() { } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here JFrame v = new JFrame("Ejemplo Utilizando BoxLayout"); v.getContentPane().setLayout(new BoxLayout(v.getContentPane(),BoxLayout.Y_AXIS)); // Se crea un botón centrado y se añade JButton boton = new JButton("Bienvenidos a NetBeans IDE 6.1"); boton.setAlignmentX(Component.CENTER_ALIGNMENT); v.getContentPane().add(boton); // Se crea una etiqueta centrada y se añade JLabel etiqueta = new JLabel("El Segundo Examen es de Interfaz Gráfica.!!!!!"); etiqueta.setAlignmentX(Component.CENTER_ALIGNMENT); v.getContentPane().add(etiqueta); v.pack(); v.setVisible(true);// Visualizar la ventana v.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } } GUÍA 4 pág. 8
  • 9. GUÍA 4 pág. 9