Está en la página 1de 12

Universidad Autónoma “Gabriel René

Moreno”

Facultad de ciencias de la computación y


telecomunicaciones

Interaccion Hombre Computador

COMPONENTES DE JAVA SWING


Nombre:Albert Tejerina Berdeja
Carrera: Ingeniería Informatica

Docente: Ing. Edwin Vargas Yapura

Grupo: 10

Fecha: 11 de febrero de 2020


Contenido
1.-Antecedentes......................................................................................................................... 3
2. Componentes y contenedores ........................................................................................... 3
2.1. Componentes ................................................................................................................. 3
2.2. Contenedores ................................................................................................................. 4
2.3 Paneles de Contenedor de Nivel Superior ................................................................. 5
2.4 Administrador de esquemas ........................................................................................ 5
3.-Descripción de la Interfaz Gráfica, explicar las razones del uso de componentes y
la relación entre ellos. .............................................................................................................. 6
4.-Código Fuente de la Interfaz Gráfica. Explicar en lo posible sus características. .. 7
5.-Componentes Utilizadas. Lista de todas las componentes utilizadas en sus
Interfaces Gráficas, por orden de complejidad de uso. (Se valorará también nuevos
componentes utilizados). ...................................................................................................... 11
6.- Conclusiones. .................................................................................................................... 12
7.-Bibliografía........................................................................................................................... 12
Uso de Componentes Visuales de Java Swing

1.-Antecedentes

Swing es un framework que proporciona componentes GUI más potentes y flexibles


que AWT. Como resultado, es la GUI la que ha sido ampliamente utilizada por los
programadores de Java durante más de una década.

El paquete se encuentra en javax.swing y consiste de varios cientos de clases y


numerosos subpaquetes.Escritos completamente en Java y por ello tienen la misma
apariencia si se ejecutan en diferentes plataformas.

Nombres de los componentes similares a los de AWT:empiezan con la letra J


seguido del nombre del componente AWT. Ejemplo: JButton

Proporciona componentes más interesantes: Selección de color, Panel de opciones,


etc.

2. Componentes y contenedores

Una GUI Swing consta de dos elementos clave: componentes y contenedores.


Sin embargo, esta distinción es principalmente conceptual porque todos los
contenedores también son componentes. a diferencia entre los dos se encuentra en
su propósito: un componente es un control visual independiente, como un botón o
campo de texto. Un contenedor contiene un grupo de componentes.

Por lo tanto, un contenedor es un tipo especial de componente que está diseñado


para contener otros componentes. Además, para que se muestre un componente,
debe mantenerse dentro de un contenedor. Por lo tanto, todas las GUI de Swing
tendrán al menos un contenedor. Como los contenedores son componentes, un
contenedor también puede contener otros contenedores. Esto permite a Swing
definir lo que se llama una jerarquía de contención, en la parte superior debe ser
un contenedor de nivel superior.

2.1. Componentes

En general, los componentes Swing se derivan de la clase JComponent. (Las


únicas excepciones a esto son los cuatro contenedores de nivel superior, que se
describen en la siguiente sección). JComponent proporciona la funcionalidad que
es común a todos los componentes. Por ejemplo, JComponent admite la look and
feel conectables. JComponent hereda las clases AWT Container y Component.
Por lo tanto, un componente Swing está integrado y es compatible con un
componente AWT.

Todos los componentes de Swing están representados por clases definidas dentro
del paquete javax.swing. La siguiente tabla muestra los nombres de clase para los
componentes Swing (incluidos los utilizados como contenedores):

Todas las clases de componentes comienzan con la letra J. Por ejemplo, la clase
para una etiqueta es JLabel, la clase para un botón es JButton y la clase para para
una casilla de verificación es JCheckBox

2.2. Contenedores

Swing define dos tipos de contenedores. Los primeros son contenedores de nivel
superior: JFrame, JApplet, JWindow y JDialog. (JApplet, que admite applets
basados en Swing, ha sido descartado por JDK 9.) Estos contenedores no heredan
JComponent. Sin embargo, heredan las clases AWT Component y Container. A
diferencia de otros componentes de Swing, que son lightweight, los contenedores
de nivel superior son heavyweight. Esto hace que los contenedores de nivel superior
sean un caso especial en la biblioteca de componentes Swing.

Como su nombre lo indica, un contenedor de nivel superior debe estar en la parte


superior de una jerarquía de contención. Un contenedor de nivel superior no está
contenido en ningún otro contenedor. Además, cada jerarquía de contención debe
comenzar con un contenedor de nivel superior. El más comúnmente utilizado para
las aplicaciones es JFrame.

El segundo tipo de contenedor compatible con Swing es el contenedor lightweight.


Los contenedores lightweight heredan JComponent. Ejemplos de contenedores
lightweight son JPanel, JScrollPane y JRootPane. Los contenedores lightweight a
menudo se usan para organizar y administrar colectivamente grupos de
componentes relacionados porque un contenedor lightweight se puede contener
dentro de otro contenedor. Por lo tanto, puede usar contenedores lightweight para
crear subgrupos de controles relacionados que están contenidos dentro de un
contenedor externo.

2.3 Paneles de Contenedor de Nivel Superior

Cada contenedor de nivel superior define un conjunto de paneles (panes). En la


parte superior de la jerarquía hay una instancia de JRootPane. JRootPane es un
contenedor lightweight cuyo objetivo es administrar los otros paneles. También
ayuda a administrar la barra de menú opcional. Los paneles que componen el panel
raíz (root pane) se denominan glass pane, content pane, y layered pane.

El glass pane es el panel de nivel superior. Se encuentra arriba y cubre por completo
todos los demás paneles. El glass pane le permite administrar los eventos del
mouse que afectan a todo el contenedor (en lugar de a un control individual) o, por
ejemplo, pintar sobre cualquier otro componente. En la mayoría de los casos, no
necesitará usar el glass pane directamente.

El layered pane permite que los componentes tengan un valor de profundidad. Este
valor determina qué componente se superpone a otro. (Por lo tanto, el layered pane
le permite especificar un orden Z para un componente, aunque esto no es algo que
normalmente deba hacer). El layered pane contiene el content pane y la barra de
menú (opcional).

2.4 Administrador de esquemas

Antes de comenzar a escribir un programa Swing, hay una cosa más que debe
tener en cuenta: administrador de disposición/esquemas/diseño. El administrador
de disposición controla la posición de los componentes dentro de un contenedor.
Java ofrece varios administradores de disposición. La mayoría son provistas por
AWT (dentro de java.awt), pero Swing agrega algunas propias. Todos los
administradores de disposición son instancias de una clase que implementa la
interfaz LayoutManager. (Algunos también implementarán la interfaz
LayoutManager2.) Aquí hay una lista de algunos de los administradores de
disposición disponibles para el programador Swing:
3.-Descripción de la Interfaz Gráfica, explicar las razones del uso de
componentes y la relación entre ellos.

Interfaz Grafica N°1


Esta interfaz gráfica permite visualizar imágenes que están previamente cargadas
en una carpeta dentro del proyecto.
Cuenta con botones de anterior y siguiente para su recorrido
Se utilizo un componente JLabel para proyectar la imagen, dos botones para
navegar de adelante y atrás
JLabel, componente para royectar la imagen.
JButton, su evento action nos permitirá ver la siguiente y anterior imagen del
vector de rutas internamente cargado .

Interfaz Grafica N°2

En esta interfaz gráfica es el juego de tres en raya , se usan los siguientes


componentes:JButton ,JDialog.
JButton, su evento action nos permitirá marcar con una O o una X que será
guardado posteriormente dentro del código para cuando sea el ultimo turno del
jugador internamente verificar si hay ganador o no.
JDialog: Permite mostrar un mensaje si hay ganador

4.-Código Fuente de la Interfaz Gráfica. Explicar en lo posible sus


características.
Visor de imagenes
C:\Users\Albert\Documents\NetBeansProjects\defensa\src\defensa\VisorImagen.java
1 /*
2 * To change this license header, choose License Headers in Project Properties.
3 * To change this template file, choose Tools | Templates
4 * and open the template in the editor.
5 */
6
7 package defensa;
8
9
10 import javax.swing.*;
11 import java.awt.event.*;
12
13 public class VisorImagen {
14 //declarando los componentes a utilizar
15 JFrame formulario;
16 JButton anterior;
17 JButton siguiente;
18 JLabel titulo;
19 JLabel label;
20 ImageIcon imagen;
21 // Cargamos la ruta de las imagenes en un vector
22 String v[]={"/img/ohm.jpg","/img/osadia.jpg","/img/zentro.png","/img/jaque.jpg"};
23
24 //indice del vector
25 int i=0;
26
27 public void mostrarFormulario(){
28 formulario= new JFrame();
29 formulario.setSize(600, 400);
30 //Centramos el formulario
31 formulario.setLocationRelativeTo(null);
32 //Cuando cerramos el formulario la app se detiene
33 formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
34 //
35 formulario.setLayout(null);
36 // construimos los componente y le damos el tamaño y posicion
37 titulo=new JLabel("Visor de Imagen");
38 titulo.setBounds(230, 10, 200, 50);
39
40 anterior= new JButton("anterior");
41 anterior.setBounds(10, 200, 100, 25);
42
43 siguiente= new JButton("siguiente");
44 siguiente.setBounds(450, 200, 120, 25);
45
46 //carga por defecto la primera imagen
47 label=new JLabel(new ImageIcon(getClass().getResource(v[i])));
48 label.setBounds(180, 60, 200, 300);
49
50 // adicionando los componentes al formulario
51 formulario.add(titulo);
52 formulario.add(anterior);
53 formulario.add(label);
54 formulario.add(siguiente);
55
56 formulario.setVisible(true);
57
58 //Evento para los botones
59 anterior.addActionListener(new Onclic());
60 siguiente.addActionListener(new Onclic());
61 }
62
63 // creamos una clase para el funcionamiento de los botones
64 class Onclic implements ActionListener{
65 @Override
66 public void actionPerformed(ActionEvent e) {
67 if (e.getSource()==anterior) {
68 if (i>=1) {
69 i--;
70 }
71 }else{
72 if (e.getSource()==siguiente) {
73 if (i<v.length-1) {
74 i++;
75 }
76 }
77 }
78 label.setIcon(new ImageIcon(getClass().getResource(v[i])));
79
80 }
81 }
82
83
84 public static void main(String[] args) {
85 // TODO code application logic here
86 VisorImagen def= new VisorImagen();
87 def.mostrarFormulario();
88
89 }
90
91 }
92
TRES EN RAYA

C:\Users\Albert\Documents\NetBeansProjects\defensa\src\defensa\VisorImagen.java
1 /*
2 * To change this license header, choose License Headers in Project Properties.
3 * To change this template file, choose Tools | Templates
4 * and open the template in the editor.
5 */
6
7 package defensa;
8
9
10 import javax.swing.*;
11 import java.awt.event.*;
12
13 public class VisorImagen {
14 //declarando los componentes a utilizar
15 JFrame formulario;
16 JButton anterior;
17 JButton siguiente;
18 JLabel titulo;
19 JLabel label;
20 ImageIcon imagen;
21 // Cargamos la ruta de las imagenes en un vector
22 String v[]={"/img/ohm.jpg","/img/osadia.jpg","/img/zentro.png","/img/jaque.jpg"};
23
24 //indice del vector
25 int i=0;
26
27 public void mostrarFormulario(){
28 formulario= new JFrame();
29 formulario.setSize(600, 400);
30 //Centramos el formulario
31 formulario.setLocationRelativeTo(null);
32 //Cuando cerramos el formulario la app se detiene
33 formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
34 //
35 formulario.setLayout(null);
36 // construimos los componente y le damos el tamaño y posicion
37 titulo=new JLabel("Visor de Imagen");
38 titulo.setBounds(230, 10, 200, 50);
39
40 anterior= new JButton("anterior");
41 anterior.setBounds(10, 200, 100, 25);
42
43 siguiente= new JButton("siguiente");
44 siguiente.setBounds(450, 200, 120, 25);
45
46 //carga por defecto la primera imagen
47 label=new JLabel(new ImageIcon(getClass().getResource(v[i])));
48 label.setBounds(180, 60, 200, 300);
49
50 // adicionando los componentes al formulario
51 formulario.add(titulo);
52 formulario.add(anterior);
53 formulario.add(label);
54 formulario.add(siguiente);
55
56 formulario.setVisible(true);
57
58 //Evento para los botones
59 anterior.addActionListener(new Onclic());
60 siguiente.addActionListener(new Onclic());
61 }
62
63 // creamos una clase para el funcionamiento de los botones
64 class Onclic implements ActionListener{
65 @Override
66 public void actionPerformed(ActionEvent e) {
67 if (e.getSource()==anterior) {
68 if (i>=1) {
69 i--;
70 }
71 }else{
72 if (e.getSource()==siguiente) {
73 if (i<v.length-1) {
74 i++;
75 }
76 }
77 }
78 label.setIcon(new ImageIcon(getClass().getResource(v[i])));
79
80 }
81 }
82
83
84 public static void main(String[] args) {
85 // TODO code application logic here
86 VisorImagen def= new VisorImagen();
87 def.mostrarFormulario();
88
89 }
90
91 }
92

5.-Componentes Utilizadas. Lista de todas las componentes utilizadas en sus


Interfaces Gráficas, por orden de complejidad de uso. (Se valorará también
nuevos componentes utilizados).

JPanel
JFrame Alto nivel de complejidad
JDialog
ImagenIcon
JButton
Medio nivel de complejidad
JTextfield
JLabel
6.- Conclusiones.
Trabajar con Swing facilita la creación de interfaces graficas de usuario,es muy
necesario porque es base para saber interfaces graficas de múltiples formularios

7.-Bibliografía.

http://codejavu.blogspot.com/2013/08/que-es-java-swing.html
http://www3.uji.es/~belfern/Docencia/Presentaciones/ProgramacionAvanzada/Tem
a3/swing.html#20
https://javadesdecero.es/avanzado/introduccion-a-swing/
Tutoriales Programacion Ya. (5 de Noviembre de 2015). Tutoriales Programacion
Ya. Obtenido de
https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codi
go=103&punto=&inicio=20

También podría gustarte