SlideShare una empresa de Scribd logo
1 de 24
Programación I-JAVA
I. Tema: Clase Swing
I.I. Definición Clase Swing:
El paquete Swing es parte de la JFC (Java Foundation Classes) en la
plataforma Java. La JFC provee facilidades para ayudar a la gente a construir
GUIs. Swing abarca componentes como botones, tablas, marcos, etc...
Las componentes Swing se identifican porque pertenecen al
paquete javax.swing.
Swing existe desde la JDK 1.1 (como un agregado). Antes de la existencia de
Swing, las interfaces gráficas con el usuario se realizaban a través de AWT
(Abstract Window Toolkit), de quien Swing hereda todo el manejo de
eventos. Usualmente, para toda componente AWT existe una componente
Swing que la reemplaza, por ejemplo, la clase Button de AWT es
reemplazada por la clase JButton de Swing (el nombre de todas las
componentes Swing comienza con "J").
Las componentes de Swing utilizan la infraestructura de AWT, incluyendo el
modelo de eventos AWT, el cual rige cómo una componente reacciona a
eventos tales como, eventos de teclado, mouse, etc... Es por esto, que la
mayoría de los programas Swing necesitan importar dos paquetes
AWT: java.awt.* y java.awt.event.*.
Ojo: Como regla, los programas no deben usar componentes pesados de
AWT junto a componentes Swing, ya que los componentes de AWT son
siempre pintados sobre los de Swing. (Por componentes pesadas de AWT se
entiende Menu, ScrollPane y todas las componentes que heredan de las
clases Canvas y Panel de AWT).
I.II. Controles Swing Básicos: jLabel, jTextField y jButton
Las ventanas de control JFrame contienen un contenedor y dentro de este,
debemos agregarle un panel de contenido donde incluiremos todos los controles
que vayamos a usar. Para ello, utilizaremos su método "getContentPane()". Es
decir,antesde incluircualquiercontrol,estosnecesitaranestarincluidosdentrodel
panel.
Además de ello, también podemos incluir un gestor de organización
llamados Layout para la distribución de los controles. En nuestro caso, lo que
haremos seráanular este gestor,de estaforma, tendremoslibre la distribuciónde
los controles.
Una vez incluidoel panelyanuladoel gestorde organización,yapodemosincluir
nuestroscontrolesyunode ellosvaa ser JLabel.
I.II.I JLabel
Este control, es una simple etiqueta donde pondremos texto fijo.
Para añadir un control, ademas de importar su paquete, debemos paser
tres fases. Primero, instanciar el control, segundo colocarlo en una
ubicacionyterceroañadirloal panel conel metodo"add()".Quedariaasi:
JLabel etiqueta=new JLabel("Aqui irael texto");
etiqueta.setBounds(10,25,120,20);
this.getContentPane.add(etiqueta);
Por tanto, imaginemosque queremos crear una ventana de ancha 300 y
alto 200 y queremos incluir en su interior un simple texto. El codigo
quearia asi:
importjavax.swing.JFrame;
importjavax.swing.JLabel;
publicclassVentanaextendsJFrame
{
publicVentana(){
this("Mi primeraventana",10,10,300,200);
}
publicVentana(Stringtitulo,intx,inty,intw, inth){
super(titulo);
this.getContentPane().setLayout(null); //Dentro del panel,le digo
que anuloel Layout
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
this.setBounds(x,y,w,h);
this.setVisible(true);
JLabel lblTexto=new JLabel("Estoes unaetiquetade texto");
lblTexto.setBounds(10,25,120,20); //Situola etiquetaenel lugar
que yo quiera
this.getContentPane().add(lblTexto);
}
publicstaticvoidmain(String[]args){
}
}
Ejecutael programa y verasla etiquetade textodentrode laventana.
Intentaejecutarloeliminantoel codigo
"this.getContentPane().setLayout(null);"averque ocurre.No podras
situarla etiquetade textodonde tuquieras.
I.II.II. JTextField
Este control esel que utilizamoscomocampodetexto,enel podremos
introducir texto para posteriormente utilizarlo a nuestra conveniencia.
Ahora vamos a colocar en la ventana un campo de texto para poder
escribir en el.
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JTextField;
publicclassVentanaextendsJFrame{
publicVentana(){
this("Mi primeraventana",10,10,300,200);
}
publicVentana(Stringtitulo,intx,inty,intw, inth){
super(titulo);
this.getContentPane().setLayout(null); // Dentrodel panel,le
digoque anuloel Layout
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
this.setBounds(x,y,w,h);
this.setVisible(true);
JLabel lblTexto=new JLabel("Estoesunaetiquetade texto");
lblTexto.setBounds(10,25,120,20); // Situolaetiquetaenel
lugarque yo quiera
this.getContentPane().add(lblTexto);
JTextFieldcmpNombre =new JTextField();
cmpNombre.setBounds(10,50,100,20);
this.getContentPane().add(cmpNombre);
}
publicstaticvoidmain(String[]args){
}
}
Prueba a ejecutarlo ahora, veras que dispones de un campo de texto
donde puedes escribir cualquier cosa. Cuando creas la instancia de este
control, puedes dejar un texto predeterminado:
JTextFieldcmpNombre =new JTextField("Escribe tunombre");
I.II.III. JButton
Este es el control de los famosos botones, con ellos podremos
programar las acciones que creamos pertinentes para ellos. Como lo
mismo con los otros controles su codigo es el siguiente:
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
public class Ventana extends JFrame{
public Ventana(){
this("Mi primera ventana",10,10,300,200);
}
public Ventana(String titulo, int x, int y, int w, int h){
super(titulo);
this.getContentPane().setLayout(null); // Dentrodel panel,ledigo
que anulo el Layout
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
this.setBounds(x,y,w,h);
this.setVisible(true);
JLabel lblTexto = new JLabel("Esto es una etiqueta de texto");
lblTexto.setBounds(10,25,120,20); // Situolaetiquetaenel lugar
que yo quiera
this.getContentPane().add(lblTexto);
JTextField cmpNombre = new JTextField();
cmpNombre.setBounds(10,50,100,20);
this.getContentPane().add(cmpNombre);
JButton btnCopiar = new JButton("Copiar");
btnCopiar.setBounds(25,80,100,20);
this.getContentPane().add(btnCopiar);
}
public static void main(String[]args){
}
}
I.II. Propiedades y eventos:
Una aplicación sin usar Formulario A continuación vamos a desarrollar una
aplicación sencilla que permita calcular el área del triángulo dado los valores de
la base y la altura. Nose utilizaráformulario,perosílas clasesdel paquete swing
para ingresos y salida de datos.
Solución:
● Estando en el entorno de desarrollo NetBeans seleccionamos la opción del
menú y luego la opción New Proyect
● Seleccionamos para Categories Java y para Proyects Java Application y luego
damos click en el botón de comando Next.
● Usamos el botón de comando Browse para crear una carpeta denominada
Ejercicios en la unidad E. En Proyect Name colocamos AreaTriangulo y en el
cuadro de textoreferidoaCreate MainClasscolocamosejercicios.AreaTriangulo,
lo cual permitirá crear un paquete denominado ejercicios y como primera clase
AreaTriangulo,esdecir,se crea el archivoAreaTriangulo.javaque perteneceráal
paquete ejercicios.
● Sabemos que en Java una clase tiene comúnmente al método Main que es el
método que se ejecuta cuando se aplica Run a la aplicación construida. En el
entorno de NetBeans, una clase creada, crea un método que tiene el mismo
nombre de laclase alaque sedenominamétodoconstructorytodaprogramación
hechaenéste métodose ejecutaráprimeroantesque el métodomain.NetBeans
generará un paquete (Package) denominado ejercicios y dentro de ella se
mostrará la clase de acceso público AreaTriangulo. El entorno de desarrollo de
NetBeans después de dar click en el botón Finish queda así:
● Agregamos al código de la programación generada, por debajo del package
ejercicios, lo siguiente:
import java.io.*;
import javax.swing.*;
El paquete javax.swing.*;permitirápodercrearingresosysalidade datosatravés
de cajas de mensaje.
● Agregamos al código en el método Main de la clase AreaTriangulo como se
aprecia a continuación (lo escrito en azul).
package
ejercicios;
import java.io.*;
import
javax.swing.*;
/**
*
* @author Administrador
*/ public class AreaTriangulo {
/** * @param args the command line arguments
*/ public static void main(String[] args) throws IOException
i
int base, altura;
double area;
base=Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese la base: "));
altura=Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese la altura"));
area=base*altura/2;
JOptionPane.showMessageDialog(null,"El area del triangulo es: "+area);
}
}
En el método main observamos que para leer el dato para la variable base
utilizamos el método showInputDialog de la clase JOptionPane que a su vez
pertenece al paquete swing,que mostraráun caja de mensaje para la lecturade
datos. De igual manera se trabajará para leer el dato de altura.
Tambiénse observael métodoshowMessageDialogde laclase JOptionPaneque
permite mostrar en una caja de mensaje el resultado del cálculo del área.
● SeleccionamosAreaTrianguloenel entornode desarrollode NetBeansyluego
damos click botón derecho del mouse. Se visualiza un menú flotante,se elige la
opción Run File y se procederá a ejecutar el programa.
● Cuando la aplicación es ejecutada se visualizará la siguiente ventana:
Nos pide el ingreso del valor de la base y luego de dar click en el botón de
comando Aceptar se mostrará la siguiente ventana:
Posteriormente se mostrará la ventana del resultado del cálculo del área
I.II.I. Objeto de control JLabel
Un objeto de control Jlabel permite dibujar en el formulario una
etiqueta, entendiéndose como etiqueta una expresión estática que se
quiere colocar.También es usado para mostrar los resultados de un
proceso.
Este componente se utiliza para desplegar textos o mensajes estéticos
dentrode las formas,textostalescomoencabezados,solicitudal usuario
del programa para que proporcione algún dato o información (edad,
dame sueldo, etc.), en cierta forma hace las funciones de printf, cout,
writeln,print,display,etc.,perosolocuandose consideranensuparte de
mensajes.
También es un objeto en java y por tanto tiene asociados sus propias
propiedadesy objetos-eventos,al mismo tiempo como se está usando
dentro del objeto FRAME, muchas propiedades que se definan para el
objeto FRAME, el objeto Label las va a heredar. Es la propiedad TEXT, la
que lleva el contenido del mensaje que se quiere desplegar, misma que
se cargara de manera igual que con FRAME, es decir
LABEL.setPROPIEDAD(parámetros, en muchos de los casos;
Propiedades más usadas:
Background(), Border(), Bounds(), Cursor(), Enabled(), Font(),
Foreground(), Name(), Opaque(), Text(), ToolTipText(), Visible()
Text: Contiene el valor que se visualizará en el formulario.
Font: Permite establecer el tipo de letra de la expresión a mostrar en el
formulario.
Border: Para establecer el tipo de borde de la etiqueta.
Enabled: Para habilitar o inhabilitar el uso del objeto de control.
Recordar que las propiedades se inicializan y se usan en código con
.SETpropiedad. Algunos de sus escuchadores con sus métodos mas
importantes son:
WINDOW: WindowActivated(), WindowClosed(), WindowClosing(),
WindowDeactivated(), WindowOpened().
MOUSE: MouseClicked(), MouseDragged(),MouseEntered(),
MouseExited(), MouseMoved(), MousePressed(), MouseReleased().
KEY: KeyPressed(), KeyReleased(), KeyTyped().
I.II.II. Objeto de control JTextField
Un objeto de control JTextFieldpermite dibujar en el formulario un
cuadrode texto,esdecir,unacajaque permitelaintroducciónde undato
o valor.Este objeto es utilizado para el ingreso de datos.
EnJavaeste componenteesunimportante componentevisual,sufunción
principal esmanejartodoslosprocesosdeentradaysalida(input/output)
al programa. Su principal propiedad es TEXT(), que es la propiedad que
contiene el dato de tipo STRING que se manipulara en los programas o
aplicaciones.
El dato dentrode estapropiedadesde tipoSTRINGy por tanto se tendrá
que convertira datos numéricosnormalesparapoder efectuarprocesos
numéricos con ellos como se vio en el JAVA TEMA de CAST y
CONVERSIONES.
Aparte de esta propiedad TEXT, tiene otras propiedades que se pueden
inicializarconel comandoSETcomo ya se ha vistoenlosJAVA TEMA s de
FRAME y LABEL.
Propiedades más usadas:
Background(), Border(), Bounds(),Columns(), Cursor(),Editable(),
Enabled(), Font(), Foreground(),Name(),Opaque(), Text(),ToolTipText(),
Visible()
● Text: Contiene el valor o dato introducido en el cuadro de texto.
● Font requestFocus()::Permite establecerel tipode letradel textoenla
caja.
● Border: Para establecer el tipo de borde del cuadro de texto.
● Enabled: Para habilitar o inhabilitar el uso del objeto de control.
Métodos más usados:
Recordar que las propiedades se inicializan y se usan en codigo con
.SETpropiedad.
WINDOW: WindowActivated(), WindowClosed(), WindowClosing(),
WindowDeactivated(), WindowOpened().
MOUSE: MouseClicked(), MouseDragged(),MouseEntered(),
MouseExited(), MouseMoved(), MousePressed(), MouseReleased().
KEY: KeyPressed(), KeyReleased(), KeyTyped().
getText(): Permite obtener el texto introducido en el cuadro de texto.
setText(): Permite colocar un texto en el objeto JTextField.
permite asignar el cursor al objeto de control.
I.II.III. Objeto de control JButton
Un objeto de control JButton permite dibujar en el formulario un
objeto que contiene un proceso a ejecutar. Se utiliza comúnmente para
llevar a cabo procesos específicos según la naturaleza de la aplicación.
En javaesel control principal de laforma,contieneel códigoprincipaldel
programa y su activación por el usuario provoca que se realicen los
principalesprocesosdel problemaplanteado(aquíesdonde se capturan
datos, se realizan operaciones, etc.). De este control se maneja su
propiedadTEXTparaetiquetarloconlapalabra“OK”o“ACEPTAR”o“EXE”
y sueventoClick paraactivarlo,esendichoeventodonde se construyeel
código del programa.
Propiedades más usadas:
Background(), Border(), Bounds(),Columns(), Cursor(),Editable(),
Enabled(), Font(), Foreground(),Name(),Opaque(), Text(),ToolTipText(),
Visible()
● Text: Contiene el valor o dato introducido en el cuadro de texto.
● Font: Permite establecer el tipo de letra del texto en la caja.
● Enabled: Para habilitar o inhabilitar el uso del objeto de control.
Evento más usado:
ActionPerformed: Este evento se lleva a cabo cuando el usuario da click
sobre el objeto de control JButton.
WINDOW: WindowActivated(), WindowClosed(), WindowClosing(),
WindowDeactivated(), WindowOpened().
MOUSE: MouseClicked(), MouseDragged(),MouseEntered(),
MouseExited(), MouseMoved(), MousePressed(), MouseReleased().
KEY: KeyPressed(), KeyReleased(), KeyTyped()
Una aplicación usando los objetos de control
Ahora procedamos a desarrollar la misma aplicación usando como
interfase un formulario y los objetos de control antes mencionado.
I.IV. Ejemplo:
Seleccionamos el paquete ejercicios y damos click botón derecho del
mouse y eligimos la opción New y posteriormente JframeForm.
Se muestra la ventana New JFrame Form y colocamos en Class Name el
nombre del formulario: frmAreaTriangulo.
En esta ventana se observa que la clase denominada frmAreaTriangulo
generaráun archivode extensión.javadenominadofrmAreaTrianguloque
se almacenará dentro de la carpeta ejercicios y pertenecerá al paquete
ejercicios.
Al momento de dar click en el botón de comando Finish se visualizará el
entorno de desarrollo NetBeansy al lado derecho se muestra la paleta de
los objetos de control (Swing Controls).
Sobre el diseñodel formulariodamosclickbotónderechoyseleccionamos
Set Layout y posteriormente AbsoluteLayout.
Es necesario usar AbsoluteLayout para que permita dibujar los objetosde
control en el lugar donde uno quiere en el formulario.
Ahora procedamos a colocar un objeto Jlabel seleccionando de la paleta
Swing Controls Label y lo arrastramos hacia el diseño del formulario
Continuamos el diseño del formulario, quedando éste de la siguiente
manera:
Ahora procedamos a usar a cambiar los valores de las propiedades de los
objetos de control en la ventana de propiedades:
Luego de aplicar los cambios en los valores de propiedades el diseñodel
formulario debe quedar de la siguiente manera:
Es necesariodarle un nombre propioa los objetosde control y sobre todo
a aquellosque intervienenenlalógicade laprogramación.Seleccionamos
el objeto de control JTextField1 y damos click con el botón derecho del
mouse y se visualizaráunmenúflotante yseleccionamos Change Variable
Name.
Colocamos como nombre al objeto JtextField1: txtBase
Continuamos con los objetos de control siguientes:
Ahora procedamos a programar en los botones de comando.
En el botón CALCULAR (btnCalcular) al darle doble click y escribir el
siguiente código: (lo escrito en azul)
private voidbtnCalcularActionPerformed(java.awt.event.ActionEventevt)
{
int base, altura;
double area;
base=Integer.parseInt(txtBase.getText());
altura=Integer.parseInt(txtAltura.getText());
area=base*altura/2;
txtArea.setText(String.valueOf(area));
}
Una vezdeclaradaslasvariablesde memoria,alavariable basese le asigna
el valor
Introducido en el cuadro de texto txtBase. El método getText() permite
obtenerel datointroducidoyconel método parseIntde laclase Integeres
convertido a numérico entero. Se hace lo mismo para la variable altura.
Para mostrar el cálculo de área se utiliza el método setText del cuadro de
texto txtArea que permite visualizar el contenido de la variable area. A la
variable se le aplica el método valueOf de la clase String para convertir el
dato área en cadena de caracteres.
el siguiente código: (lo escrito en azul)
private voidbtnLimpiarActionPerformed(java.awt.event.ActionEvent evt)
{
txtBase.setText("");
txtAltura.setText("");
txtArea.setText("");
txtBase.requestFocus();
}
Se limpian los cuadros de textos a través del método setText() y con el
método requestFocus() se pasa el cursor al objeto de control txtArea.
En el botón CERRAR (btnCerrar) luego de darle doble click, escribimos el
siguiente código: (lo escrito en azul)
private voidbtnCerrarActionPerformed(java.awt.event.ActionEvent evt)
{
dispose();
}
El método dispose() permite descargar el formulario y terminar la
ejecución de la aplicación.
ProcedemosaejecutarlaaplicaciónseleccionadofrmAreaTrianguloyal dar
clic botón derecho eligimos Run File
Se muestra el formulario diseñado en etapa de ejecución.
Podemosobservarque elformulariosaleconlosobjetosdecontrolcercano
a los bordesdel formularioyel mismoformulariose visualizapegado enla
parte superiorizquierdade la pantalladel computador.Vamosa proceder
a corregir estos defectos agregando dos líneas de código en el método
constructor de la clase frmAreaTriangulo. (escribe lo que está en azul)
public class frmAreaTriangulo extends javax.swing.JFrame
{
/** Creates new form frmAreaTriangulo */
public frmAreaTriangulo()
{
initComponents();
setSize(400,250);
setLocation(250,250);
}
El método setSize() permite establecer el tamaño del formulario y el
método setLocation() permite ubicar el formulario dentro de la pantalla.
Los métodos antes mencionados pertenecen al formulario
frmAreaTriabgulo. Otros métodos del formulario se verán más adelante.
Procedemos nuevamennte a ejecutar el formulariofrmAreaTriangulo y se
mostrará de la siguiente manera:
En el siguiente tema conoceremos más objetos de control y seguiremos
trabajando con lo aprendido en esta sesión o tema.
II. Resumen
Antes de la existencia de Swing, las interfaces gráficas con el usuariose realizaban a través
de AWT (Abstract Window Toolkit), de quien Swing hereda todo el manejo de eventos.
Usualmente, paratodacomponenteAWTexisteunacomponenteSwingquelareemplaza, por
ejemplo, la clase Buttonde AWT es reemplazada porla clase JButtonde Swing (el nombrede
todas las componentes Swing comienza con "J").
Las componentes de Swing utilizan la infraestructura de AWT, incluyendo el modelo de
eventosAWT, el cual rige cómounacomponentereacciona a eventostales como, eventosde
teclado, mouse, etc
III. Recomendaciones
• En la aplicación sólo debe haber un único JFrame, correspondiente a la
aplicación principal.
• Evita en lo posible los JDialog modales, o ten muy en cuenta su jerarquía de padres.
• Nunca heredes de JFrame o JDialog o JApplet para hacer tus ventanas.
• Respetar los pasos que se aplican en la clase swing.
• Es muy importante antes de programar definir o tener bien claro los procedimientos.
• Proporcionarcomponentesbásicosde GUI para utilizarlos,tantoen los applets comoen
las aplicaciones.
IV. Conclusiones
En conclusiónPodemosdecirque SwingeslaevolucióndelAWT (AbstractWindow
Toolkit).
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.
A partir de AWT nace Swing con mejoras en aspectos visuales, portabilidad y
comportamiento.
V. Apreciación del equipo
Este trabajo está elaborado con un grupo de estudiantes de la carrera de
ingeniería de sistemas y telemática de TERCER CICLO de la universidad politécnica
Amazónica (UPA) con la finalidad de aprender algo nuevo descubriendo
habilidades en un mundo de la programación.
VI. Glosario de términos
 JFC:Java Foundation Classes.
 Layout: Cuadrícula imaginaria que divide en espacios o campos la página
que se diseña para facilitar la distribución de elementos como textos ó
gráficos en la misma.
 Swing: es parte de la JFC en la plataforma Java.
 AWT:Abstract Window Toolkit.
 Plataforma: es un sistema que permite la ejecución de diversas
aplicaciones bajo un mismo entorno, dando a los usuarios la posibilidad de
acceder a ellas a través de Internet.
VII. Linkografia
 http://programandojava.webnode.es/products/a35-los-controles-basicos/
 http://biblioteca.uns.edu.pe/saladocentes/archivoz/curzoz/001_tema_2_objeto
s_jlabel_jtextfield_jbutton.pdf
 http://franvarvil.blogspot.pe/2012/12/jlabel-programacion-java.html
 http://franvarvil.blogspot.pe/2012/12/

Más contenido relacionado

La actualidad más candente

Swing
SwingSwing
SwingEPN
 
Manejo de Eventos en java
Manejo de Eventos en javaManejo de Eventos en java
Manejo de Eventos en javaSilvana Vargas
 
Informe de eventos topicos avanzados de programacion.
Informe de eventos topicos avanzados de programacion.Informe de eventos topicos avanzados de programacion.
Informe de eventos topicos avanzados de programacion.Aristides Miguel Mateo
 
Manual de power_builder
Manual de power_builderManual de power_builder
Manual de power_builderNicolas Ortiz
 
Practica Dos Delphi
Practica Dos DelphiPractica Dos Delphi
Practica Dos DelphiJose Ponce
 
2 interfaces graficas_de_usuario (1)
2 interfaces graficas_de_usuario (1)2 interfaces graficas_de_usuario (1)
2 interfaces graficas_de_usuario (1)ElielMauricioEscobar
 
2012 interfaz grafica en guide matlab
2012 interfaz grafica en guide matlab2012 interfaz grafica en guide matlab
2012 interfaz grafica en guide matlabCarlos Yagamy
 
TEMAS DE JAVA DEL 11 AL 23
TEMAS DE JAVA DEL 11 AL 23TEMAS DE JAVA DEL 11 AL 23
TEMAS DE JAVA DEL 11 AL 23equipotresamp
 
Practica Cuatro Delphi
Practica Cuatro  DelphiPractica Cuatro  Delphi
Practica Cuatro DelphiJose Ponce
 
Event Programing & Driven Mediator Pattern
Event Programing & Driven Mediator PatternEvent Programing & Driven Mediator Pattern
Event Programing & Driven Mediator Patternripoblet
 
Java class library
Java class libraryJava class library
Java class libraryLCA
 

La actualidad más candente (20)

Swing
SwingSwing
Swing
 
Java tema06a
Java tema06aJava tema06a
Java tema06a
 
Manejo de Eventos en java
Manejo de Eventos en javaManejo de Eventos en java
Manejo de Eventos en java
 
Informe de eventos topicos avanzados de programacion.
Informe de eventos topicos avanzados de programacion.Informe de eventos topicos avanzados de programacion.
Informe de eventos topicos avanzados de programacion.
 
Manual de power_builder
Manual de power_builderManual de power_builder
Manual de power_builder
 
Practica Dos Delphi
Practica Dos DelphiPractica Dos Delphi
Practica Dos Delphi
 
Matlab
MatlabMatlab
Matlab
 
2 interfaces graficas_de_usuario (1)
2 interfaces graficas_de_usuario (1)2 interfaces graficas_de_usuario (1)
2 interfaces graficas_de_usuario (1)
 
Manual de usuario
Manual de usuarioManual de usuario
Manual de usuario
 
Interfaz grafica matlab
Interfaz grafica matlabInterfaz grafica matlab
Interfaz grafica matlab
 
C# calculadora
C# calculadoraC# calculadora
C# calculadora
 
2012 interfaz grafica en guide matlab
2012 interfaz grafica en guide matlab2012 interfaz grafica en guide matlab
2012 interfaz grafica en guide matlab
 
Temaswing
TemaswingTemaswing
Temaswing
 
TEMAS DE JAVA DEL 11 AL 23
TEMAS DE JAVA DEL 11 AL 23TEMAS DE JAVA DEL 11 AL 23
TEMAS DE JAVA DEL 11 AL 23
 
Programación con Pygame V
Programación con Pygame VProgramación con Pygame V
Programación con Pygame V
 
Informe tecnico eventos
Informe tecnico   eventosInforme tecnico   eventos
Informe tecnico eventos
 
Practica Cuatro Delphi
Practica Cuatro  DelphiPractica Cuatro  Delphi
Practica Cuatro Delphi
 
Event Programing & Driven Mediator Pattern
Event Programing & Driven Mediator PatternEvent Programing & Driven Mediator Pattern
Event Programing & Driven Mediator Pattern
 
Java class library
Java class libraryJava class library
Java class library
 
Programación con Pygame VI
Programación con Pygame VIProgramación con Pygame VI
Programación con Pygame VI
 

Similar a Programación i

Programa calculadora
Programa calculadoraPrograma calculadora
Programa calculadorajbersosa
 
Java GUI La librería Swing
Java GUI La librería Swing Java GUI La librería Swing
Java GUI La librería Swing Laura
 
Ejemplo j internalframe_gine
Ejemplo j internalframe_gineEjemplo j internalframe_gine
Ejemplo j internalframe_ginehrgamaliel
 
Interfaz gráfica de usuario
Interfaz gráfica de usuarioInterfaz gráfica de usuario
Interfaz gráfica de usuarioaleja0940
 
Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01Ricardo Garcia
 
Programando bajo el paradigma orientado a objetos, parte uno
Programando bajo el paradigma orientado a objetos, parte unoProgramando bajo el paradigma orientado a objetos, parte uno
Programando bajo el paradigma orientado a objetos, parte unoIng-D-SW-TorresKhano--ME
 
Interfaces Usuario 3
Interfaces Usuario 3Interfaces Usuario 3
Interfaces Usuario 3Milaly
 
Objetivo interfas a codigo
Objetivo interfas a codigoObjetivo interfas a codigo
Objetivo interfas a codigoRobert Wolf
 
2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventos2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventosCamilo Herreño
 
Java construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awtJava construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awtjbersosa
 
C6 net beansentradasysalidas
C6 net beansentradasysalidasC6 net beansentradasysalidas
C6 net beansentradasysalidasalenco
 
Examen programación
Examen programaciónExamen programación
Examen programaciónOdalisCuichan
 

Similar a Programación i (20)

Programa calculadora
Programa calculadoraPrograma calculadora
Programa calculadora
 
Semana 5 Java Swing
Semana 5   Java SwingSemana 5   Java Swing
Semana 5 Java Swing
 
Java GUI La librería Swing
Java GUI La librería Swing Java GUI La librería Swing
Java GUI La librería Swing
 
Ejemplo j internalframe_gine
Ejemplo j internalframe_gineEjemplo j internalframe_gine
Ejemplo j internalframe_gine
 
Interfaz gráfica de usuario
Interfaz gráfica de usuarioInterfaz gráfica de usuario
Interfaz gráfica de usuario
 
Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01
 
Tema 2 objetos_jlabel_jtextfield_jbutton
Tema 2 objetos_jlabel_jtextfield_jbuttonTema 2 objetos_jlabel_jtextfield_jbutton
Tema 2 objetos_jlabel_jtextfield_jbutton
 
Programando bajo el paradigma orientado a objetos, parte uno
Programando bajo el paradigma orientado a objetos, parte unoProgramando bajo el paradigma orientado a objetos, parte uno
Programando bajo el paradigma orientado a objetos, parte uno
 
Flow layout
Flow layoutFlow layout
Flow layout
 
Curso java 6
Curso java 6Curso java 6
Curso java 6
 
Interfaces Usuario 3
Interfaces Usuario 3Interfaces Usuario 3
Interfaces Usuario 3
 
Vbr Awt 01
Vbr Awt 01Vbr Awt 01
Vbr Awt 01
 
Objetivo interfas a codigo
Objetivo interfas a codigoObjetivo interfas a codigo
Objetivo interfas a codigo
 
Eventos
EventosEventos
Eventos
 
Android
AndroidAndroid
Android
 
2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventos2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventos
 
Java construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awtJava construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awt
 
C6 net beansentradasysalidas
C6 net beansentradasysalidasC6 net beansentradasysalidas
C6 net beansentradasysalidas
 
Interfaces graficas(1)
Interfaces graficas(1)Interfaces graficas(1)
Interfaces graficas(1)
 
Examen programación
Examen programaciónExamen programación
Examen programación
 

Último

Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)mendezruben1901
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfJessLeonelVargasJimn
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresSegundo Silva Maguiña
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosOscarGonzalez231938
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxluisvalero46
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionOsdelTacusiPancorbo
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxEtse9
 
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRQUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRyanimarca23
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...esandoval7
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxJairReyna1
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdffredyflores58
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfAnonymous0pBRsQXfnx
 

Último (20)

Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdf
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y Vectores
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneos
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptx
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacion
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptx
 
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRQUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdfMATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
 
NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptx
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdf
 

Programación i

  • 1. Programación I-JAVA I. Tema: Clase Swing I.I. Definición Clase Swing: El paquete Swing es parte de la JFC (Java Foundation Classes) en la plataforma Java. La JFC provee facilidades para ayudar a la gente a construir GUIs. Swing abarca componentes como botones, tablas, marcos, etc... Las componentes Swing se identifican porque pertenecen al paquete javax.swing. Swing existe desde la JDK 1.1 (como un agregado). Antes de la existencia de Swing, las interfaces gráficas con el usuario se realizaban a través de AWT (Abstract Window Toolkit), de quien Swing hereda todo el manejo de eventos. Usualmente, para toda componente AWT existe una componente Swing que la reemplaza, por ejemplo, la clase Button de AWT es reemplazada por la clase JButton de Swing (el nombre de todas las componentes Swing comienza con "J"). Las componentes de Swing utilizan la infraestructura de AWT, incluyendo el modelo de eventos AWT, el cual rige cómo una componente reacciona a eventos tales como, eventos de teclado, mouse, etc... Es por esto, que la mayoría de los programas Swing necesitan importar dos paquetes AWT: java.awt.* y java.awt.event.*. Ojo: Como regla, los programas no deben usar componentes pesados de AWT junto a componentes Swing, ya que los componentes de AWT son siempre pintados sobre los de Swing. (Por componentes pesadas de AWT se entiende Menu, ScrollPane y todas las componentes que heredan de las clases Canvas y Panel de AWT). I.II. Controles Swing Básicos: jLabel, jTextField y jButton Las ventanas de control JFrame contienen un contenedor y dentro de este, debemos agregarle un panel de contenido donde incluiremos todos los controles que vayamos a usar. Para ello, utilizaremos su método "getContentPane()". Es decir,antesde incluircualquiercontrol,estosnecesitaranestarincluidosdentrodel panel. Además de ello, también podemos incluir un gestor de organización llamados Layout para la distribución de los controles. En nuestro caso, lo que
  • 2. haremos seráanular este gestor,de estaforma, tendremoslibre la distribuciónde los controles. Una vez incluidoel panelyanuladoel gestorde organización,yapodemosincluir nuestroscontrolesyunode ellosvaa ser JLabel. I.II.I JLabel Este control, es una simple etiqueta donde pondremos texto fijo. Para añadir un control, ademas de importar su paquete, debemos paser tres fases. Primero, instanciar el control, segundo colocarlo en una ubicacionyterceroañadirloal panel conel metodo"add()".Quedariaasi: JLabel etiqueta=new JLabel("Aqui irael texto"); etiqueta.setBounds(10,25,120,20); this.getContentPane.add(etiqueta); Por tanto, imaginemosque queremos crear una ventana de ancha 300 y alto 200 y queremos incluir en su interior un simple texto. El codigo quearia asi: importjavax.swing.JFrame; importjavax.swing.JLabel; publicclassVentanaextendsJFrame { publicVentana(){ this("Mi primeraventana",10,10,300,200); } publicVentana(Stringtitulo,intx,inty,intw, inth){ super(titulo);
  • 3. this.getContentPane().setLayout(null); //Dentro del panel,le digo que anuloel Layout this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); this.setBounds(x,y,w,h); this.setVisible(true); JLabel lblTexto=new JLabel("Estoes unaetiquetade texto"); lblTexto.setBounds(10,25,120,20); //Situola etiquetaenel lugar que yo quiera this.getContentPane().add(lblTexto); } publicstaticvoidmain(String[]args){ } } Ejecutael programa y verasla etiquetade textodentrode laventana. Intentaejecutarloeliminantoel codigo "this.getContentPane().setLayout(null);"averque ocurre.No podras situarla etiquetade textodonde tuquieras. I.II.II. JTextField Este control esel que utilizamoscomocampodetexto,enel podremos introducir texto para posteriormente utilizarlo a nuestra conveniencia. Ahora vamos a colocar en la ventana un campo de texto para poder escribir en el. importjavax.swing.JFrame; importjavax.swing.JLabel; importjavax.swing.JTextField; publicclassVentanaextendsJFrame{
  • 4. publicVentana(){ this("Mi primeraventana",10,10,300,200); } publicVentana(Stringtitulo,intx,inty,intw, inth){ super(titulo); this.getContentPane().setLayout(null); // Dentrodel panel,le digoque anuloel Layout this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); this.setBounds(x,y,w,h); this.setVisible(true); JLabel lblTexto=new JLabel("Estoesunaetiquetade texto"); lblTexto.setBounds(10,25,120,20); // Situolaetiquetaenel lugarque yo quiera this.getContentPane().add(lblTexto); JTextFieldcmpNombre =new JTextField(); cmpNombre.setBounds(10,50,100,20); this.getContentPane().add(cmpNombre); } publicstaticvoidmain(String[]args){ } } Prueba a ejecutarlo ahora, veras que dispones de un campo de texto donde puedes escribir cualquier cosa. Cuando creas la instancia de este control, puedes dejar un texto predeterminado: JTextFieldcmpNombre =new JTextField("Escribe tunombre");
  • 5. I.II.III. JButton Este es el control de los famosos botones, con ellos podremos programar las acciones que creamos pertinentes para ellos. Como lo mismo con los otros controles su codigo es el siguiente: import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JButton; public class Ventana extends JFrame{ public Ventana(){ this("Mi primera ventana",10,10,300,200); } public Ventana(String titulo, int x, int y, int w, int h){ super(titulo); this.getContentPane().setLayout(null); // Dentrodel panel,ledigo que anulo el Layout this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); this.setBounds(x,y,w,h); this.setVisible(true); JLabel lblTexto = new JLabel("Esto es una etiqueta de texto"); lblTexto.setBounds(10,25,120,20); // Situolaetiquetaenel lugar que yo quiera this.getContentPane().add(lblTexto); JTextField cmpNombre = new JTextField(); cmpNombre.setBounds(10,50,100,20); this.getContentPane().add(cmpNombre);
  • 6. JButton btnCopiar = new JButton("Copiar"); btnCopiar.setBounds(25,80,100,20); this.getContentPane().add(btnCopiar); } public static void main(String[]args){ } } I.II. Propiedades y eventos: Una aplicación sin usar Formulario A continuación vamos a desarrollar una aplicación sencilla que permita calcular el área del triángulo dado los valores de la base y la altura. Nose utilizaráformulario,perosílas clasesdel paquete swing para ingresos y salida de datos. Solución:
  • 7. ● Estando en el entorno de desarrollo NetBeans seleccionamos la opción del menú y luego la opción New Proyect
  • 8. ● Seleccionamos para Categories Java y para Proyects Java Application y luego damos click en el botón de comando Next. ● Usamos el botón de comando Browse para crear una carpeta denominada Ejercicios en la unidad E. En Proyect Name colocamos AreaTriangulo y en el cuadro de textoreferidoaCreate MainClasscolocamosejercicios.AreaTriangulo, lo cual permitirá crear un paquete denominado ejercicios y como primera clase AreaTriangulo,esdecir,se crea el archivoAreaTriangulo.javaque perteneceráal paquete ejercicios. ● Sabemos que en Java una clase tiene comúnmente al método Main que es el método que se ejecuta cuando se aplica Run a la aplicación construida. En el entorno de NetBeans, una clase creada, crea un método que tiene el mismo nombre de laclase alaque sedenominamétodoconstructorytodaprogramación hechaenéste métodose ejecutaráprimeroantesque el métodomain.NetBeans generará un paquete (Package) denominado ejercicios y dentro de ella se mostrará la clase de acceso público AreaTriangulo. El entorno de desarrollo de NetBeans después de dar click en el botón Finish queda así:
  • 9. ● Agregamos al código de la programación generada, por debajo del package ejercicios, lo siguiente: import java.io.*; import javax.swing.*; El paquete javax.swing.*;permitirápodercrearingresosysalidade datosatravés de cajas de mensaje. ● Agregamos al código en el método Main de la clase AreaTriangulo como se aprecia a continuación (lo escrito en azul). package ejercicios; import java.io.*; import javax.swing.*; /** * * @author Administrador */ public class AreaTriangulo { /** * @param args the command line arguments
  • 10. */ public static void main(String[] args) throws IOException i int base, altura; double area; base=Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese la base: ")); altura=Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese la altura")); area=base*altura/2; JOptionPane.showMessageDialog(null,"El area del triangulo es: "+area); } } En el método main observamos que para leer el dato para la variable base utilizamos el método showInputDialog de la clase JOptionPane que a su vez pertenece al paquete swing,que mostraráun caja de mensaje para la lecturade datos. De igual manera se trabajará para leer el dato de altura. Tambiénse observael métodoshowMessageDialogde laclase JOptionPaneque permite mostrar en una caja de mensaje el resultado del cálculo del área. ● SeleccionamosAreaTrianguloenel entornode desarrollode NetBeansyluego damos click botón derecho del mouse. Se visualiza un menú flotante,se elige la opción Run File y se procederá a ejecutar el programa. ● Cuando la aplicación es ejecutada se visualizará la siguiente ventana:
  • 11. Nos pide el ingreso del valor de la base y luego de dar click en el botón de comando Aceptar se mostrará la siguiente ventana: Posteriormente se mostrará la ventana del resultado del cálculo del área I.II.I. Objeto de control JLabel Un objeto de control Jlabel permite dibujar en el formulario una etiqueta, entendiéndose como etiqueta una expresión estática que se quiere colocar.También es usado para mostrar los resultados de un proceso. Este componente se utiliza para desplegar textos o mensajes estéticos dentrode las formas,textostalescomoencabezados,solicitudal usuario del programa para que proporcione algún dato o información (edad, dame sueldo, etc.), en cierta forma hace las funciones de printf, cout, writeln,print,display,etc.,perosolocuandose consideranensuparte de mensajes. También es un objeto en java y por tanto tiene asociados sus propias propiedadesy objetos-eventos,al mismo tiempo como se está usando dentro del objeto FRAME, muchas propiedades que se definan para el objeto FRAME, el objeto Label las va a heredar. Es la propiedad TEXT, la que lleva el contenido del mensaje que se quiere desplegar, misma que se cargara de manera igual que con FRAME, es decir LABEL.setPROPIEDAD(parámetros, en muchos de los casos; Propiedades más usadas:
  • 12. Background(), Border(), Bounds(), Cursor(), Enabled(), Font(), Foreground(), Name(), Opaque(), Text(), ToolTipText(), Visible() Text: Contiene el valor que se visualizará en el formulario. Font: Permite establecer el tipo de letra de la expresión a mostrar en el formulario. Border: Para establecer el tipo de borde de la etiqueta. Enabled: Para habilitar o inhabilitar el uso del objeto de control. Recordar que las propiedades se inicializan y se usan en código con .SETpropiedad. Algunos de sus escuchadores con sus métodos mas importantes son: WINDOW: WindowActivated(), WindowClosed(), WindowClosing(), WindowDeactivated(), WindowOpened(). MOUSE: MouseClicked(), MouseDragged(),MouseEntered(), MouseExited(), MouseMoved(), MousePressed(), MouseReleased(). KEY: KeyPressed(), KeyReleased(), KeyTyped(). I.II.II. Objeto de control JTextField Un objeto de control JTextFieldpermite dibujar en el formulario un cuadrode texto,esdecir,unacajaque permitelaintroducciónde undato o valor.Este objeto es utilizado para el ingreso de datos. EnJavaeste componenteesunimportante componentevisual,sufunción principal esmanejartodoslosprocesosdeentradaysalida(input/output) al programa. Su principal propiedad es TEXT(), que es la propiedad que contiene el dato de tipo STRING que se manipulara en los programas o aplicaciones. El dato dentrode estapropiedadesde tipoSTRINGy por tanto se tendrá que convertira datos numéricosnormalesparapoder efectuarprocesos numéricos con ellos como se vio en el JAVA TEMA de CAST y CONVERSIONES. Aparte de esta propiedad TEXT, tiene otras propiedades que se pueden inicializarconel comandoSETcomo ya se ha vistoenlosJAVA TEMA s de FRAME y LABEL. Propiedades más usadas: Background(), Border(), Bounds(),Columns(), Cursor(),Editable(), Enabled(), Font(), Foreground(),Name(),Opaque(), Text(),ToolTipText(), Visible() ● Text: Contiene el valor o dato introducido en el cuadro de texto.
  • 13. ● Font requestFocus()::Permite establecerel tipode letradel textoenla caja. ● Border: Para establecer el tipo de borde del cuadro de texto. ● Enabled: Para habilitar o inhabilitar el uso del objeto de control. Métodos más usados: Recordar que las propiedades se inicializan y se usan en codigo con .SETpropiedad. WINDOW: WindowActivated(), WindowClosed(), WindowClosing(), WindowDeactivated(), WindowOpened(). MOUSE: MouseClicked(), MouseDragged(),MouseEntered(), MouseExited(), MouseMoved(), MousePressed(), MouseReleased(). KEY: KeyPressed(), KeyReleased(), KeyTyped(). getText(): Permite obtener el texto introducido en el cuadro de texto. setText(): Permite colocar un texto en el objeto JTextField. permite asignar el cursor al objeto de control. I.II.III. Objeto de control JButton Un objeto de control JButton permite dibujar en el formulario un objeto que contiene un proceso a ejecutar. Se utiliza comúnmente para llevar a cabo procesos específicos según la naturaleza de la aplicación. En javaesel control principal de laforma,contieneel códigoprincipaldel programa y su activación por el usuario provoca que se realicen los principalesprocesosdel problemaplanteado(aquíesdonde se capturan datos, se realizan operaciones, etc.). De este control se maneja su propiedadTEXTparaetiquetarloconlapalabra“OK”o“ACEPTAR”o“EXE” y sueventoClick paraactivarlo,esendichoeventodonde se construyeel código del programa. Propiedades más usadas: Background(), Border(), Bounds(),Columns(), Cursor(),Editable(), Enabled(), Font(), Foreground(),Name(),Opaque(), Text(),ToolTipText(), Visible() ● Text: Contiene el valor o dato introducido en el cuadro de texto. ● Font: Permite establecer el tipo de letra del texto en la caja. ● Enabled: Para habilitar o inhabilitar el uso del objeto de control. Evento más usado: ActionPerformed: Este evento se lleva a cabo cuando el usuario da click sobre el objeto de control JButton.
  • 14. WINDOW: WindowActivated(), WindowClosed(), WindowClosing(), WindowDeactivated(), WindowOpened(). MOUSE: MouseClicked(), MouseDragged(),MouseEntered(), MouseExited(), MouseMoved(), MousePressed(), MouseReleased(). KEY: KeyPressed(), KeyReleased(), KeyTyped() Una aplicación usando los objetos de control Ahora procedamos a desarrollar la misma aplicación usando como interfase un formulario y los objetos de control antes mencionado. I.IV. Ejemplo: Seleccionamos el paquete ejercicios y damos click botón derecho del mouse y eligimos la opción New y posteriormente JframeForm. Se muestra la ventana New JFrame Form y colocamos en Class Name el nombre del formulario: frmAreaTriangulo.
  • 15. En esta ventana se observa que la clase denominada frmAreaTriangulo generaráun archivode extensión.javadenominadofrmAreaTrianguloque se almacenará dentro de la carpeta ejercicios y pertenecerá al paquete ejercicios. Al momento de dar click en el botón de comando Finish se visualizará el entorno de desarrollo NetBeansy al lado derecho se muestra la paleta de los objetos de control (Swing Controls).
  • 16. Sobre el diseñodel formulariodamosclickbotónderechoyseleccionamos Set Layout y posteriormente AbsoluteLayout. Es necesario usar AbsoluteLayout para que permita dibujar los objetosde control en el lugar donde uno quiere en el formulario.
  • 17. Ahora procedamos a colocar un objeto Jlabel seleccionando de la paleta Swing Controls Label y lo arrastramos hacia el diseño del formulario Continuamos el diseño del formulario, quedando éste de la siguiente manera: Ahora procedamos a usar a cambiar los valores de las propiedades de los objetos de control en la ventana de propiedades:
  • 18. Luego de aplicar los cambios en los valores de propiedades el diseñodel formulario debe quedar de la siguiente manera: Es necesariodarle un nombre propioa los objetosde control y sobre todo a aquellosque intervienenenlalógicade laprogramación.Seleccionamos el objeto de control JTextField1 y damos click con el botón derecho del mouse y se visualizaráunmenúflotante yseleccionamos Change Variable Name.
  • 19. Colocamos como nombre al objeto JtextField1: txtBase Continuamos con los objetos de control siguientes:
  • 20. Ahora procedamos a programar en los botones de comando. En el botón CALCULAR (btnCalcular) al darle doble click y escribir el siguiente código: (lo escrito en azul) private voidbtnCalcularActionPerformed(java.awt.event.ActionEventevt) { int base, altura; double area; base=Integer.parseInt(txtBase.getText()); altura=Integer.parseInt(txtAltura.getText()); area=base*altura/2; txtArea.setText(String.valueOf(area)); } Una vezdeclaradaslasvariablesde memoria,alavariable basese le asigna el valor Introducido en el cuadro de texto txtBase. El método getText() permite obtenerel datointroducidoyconel método parseIntde laclase Integeres convertido a numérico entero. Se hace lo mismo para la variable altura. Para mostrar el cálculo de área se utiliza el método setText del cuadro de texto txtArea que permite visualizar el contenido de la variable area. A la variable se le aplica el método valueOf de la clase String para convertir el dato área en cadena de caracteres. el siguiente código: (lo escrito en azul) private voidbtnLimpiarActionPerformed(java.awt.event.ActionEvent evt) { txtBase.setText(""); txtAltura.setText(""); txtArea.setText(""); txtBase.requestFocus(); } Se limpian los cuadros de textos a través del método setText() y con el método requestFocus() se pasa el cursor al objeto de control txtArea. En el botón CERRAR (btnCerrar) luego de darle doble click, escribimos el siguiente código: (lo escrito en azul) private voidbtnCerrarActionPerformed(java.awt.event.ActionEvent evt) { dispose(); } El método dispose() permite descargar el formulario y terminar la ejecución de la aplicación.
  • 21. ProcedemosaejecutarlaaplicaciónseleccionadofrmAreaTrianguloyal dar clic botón derecho eligimos Run File Se muestra el formulario diseñado en etapa de ejecución. Podemosobservarque elformulariosaleconlosobjetosdecontrolcercano a los bordesdel formularioyel mismoformulariose visualizapegado enla parte superiorizquierdade la pantalladel computador.Vamosa proceder a corregir estos defectos agregando dos líneas de código en el método constructor de la clase frmAreaTriangulo. (escribe lo que está en azul) public class frmAreaTriangulo extends javax.swing.JFrame {
  • 22. /** Creates new form frmAreaTriangulo */ public frmAreaTriangulo() { initComponents(); setSize(400,250); setLocation(250,250); } El método setSize() permite establecer el tamaño del formulario y el método setLocation() permite ubicar el formulario dentro de la pantalla. Los métodos antes mencionados pertenecen al formulario frmAreaTriabgulo. Otros métodos del formulario se verán más adelante. Procedemos nuevamennte a ejecutar el formulariofrmAreaTriangulo y se mostrará de la siguiente manera: En el siguiente tema conoceremos más objetos de control y seguiremos trabajando con lo aprendido en esta sesión o tema. II. Resumen Antes de la existencia de Swing, las interfaces gráficas con el usuariose realizaban a través de AWT (Abstract Window Toolkit), de quien Swing hereda todo el manejo de eventos. Usualmente, paratodacomponenteAWTexisteunacomponenteSwingquelareemplaza, por ejemplo, la clase Buttonde AWT es reemplazada porla clase JButtonde Swing (el nombrede todas las componentes Swing comienza con "J"). Las componentes de Swing utilizan la infraestructura de AWT, incluyendo el modelo de eventosAWT, el cual rige cómounacomponentereacciona a eventostales como, eventosde teclado, mouse, etc
  • 23. III. Recomendaciones • En la aplicación sólo debe haber un único JFrame, correspondiente a la aplicación principal. • Evita en lo posible los JDialog modales, o ten muy en cuenta su jerarquía de padres. • Nunca heredes de JFrame o JDialog o JApplet para hacer tus ventanas. • Respetar los pasos que se aplican en la clase swing. • Es muy importante antes de programar definir o tener bien claro los procedimientos. • Proporcionarcomponentesbásicosde GUI para utilizarlos,tantoen los applets comoen las aplicaciones. IV. Conclusiones En conclusiónPodemosdecirque SwingeslaevolucióndelAWT (AbstractWindow Toolkit). 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. A partir de AWT nace Swing con mejoras en aspectos visuales, portabilidad y comportamiento. V. Apreciación del equipo Este trabajo está elaborado con un grupo de estudiantes de la carrera de ingeniería de sistemas y telemática de TERCER CICLO de la universidad politécnica Amazónica (UPA) con la finalidad de aprender algo nuevo descubriendo habilidades en un mundo de la programación. VI. Glosario de términos  JFC:Java Foundation Classes.  Layout: Cuadrícula imaginaria que divide en espacios o campos la página que se diseña para facilitar la distribución de elementos como textos ó gráficos en la misma.  Swing: es parte de la JFC en la plataforma Java.  AWT:Abstract Window Toolkit.  Plataforma: es un sistema que permite la ejecución de diversas aplicaciones bajo un mismo entorno, dando a los usuarios la posibilidad de acceder a ellas a través de Internet.
  • 24. VII. Linkografia  http://programandojava.webnode.es/products/a35-los-controles-basicos/  http://biblioteca.uns.edu.pe/saladocentes/archivoz/curzoz/001_tema_2_objeto s_jlabel_jtextfield_jbutton.pdf  http://franvarvil.blogspot.pe/2012/12/jlabel-programacion-java.html  http://franvarvil.blogspot.pe/2012/12/