SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
INTERFAZ GRAFICA EN
JAVA
Mg. Richard E. Mendoza G.
AWT(Abstract Window Toolkit)
Tiene la ventaja de que las
aplicaciones se parecen mucho al
Sistemas Operativo sobe el que se
ejecuta.
Su principal desventaja que carga
el Sistema Operativo y además no
se pueden introducir cambios en
el aspecto de los componentes
Se encuentra en la librería
java.AWT
No tiene MVC
AWT Y SWING
Swing
Programado en código no nativo,
por lo que es mas portable. Estos
componentes son mas potentes
que los anteriores y se identifican
con una J antes del nombre.
Sus componentes se encuentran
en la librería javax.swing y son
todos subclases de la clase
Jcomponente.Swing
Soporta MVC
forma parte de Java Foundation
Classes (JFC) que se utiliza para
crear aplicaciones basadas en
ventanas. Está construido sobre
la API de AWT (Abstract
Windowing Toolkit) y
completamente escrito en Java.
El paquete javax.swing
proporciona clases para Java
swing API como JButton,
JTextField, JTextArea,
JRadioButton, JCheckbox,
JMenu, JColorChooser, etc.
¿Qué es SWING?
La componente básica que
requerimos cada vez que
implementamos una interfaz
visual con la libraría Swing es la
clase JFrame. Esta clase
encapsula una Ventana clásica de
cualquier sistema operativo con
entorno gráfico (Windows, OS X,
Linux etc.)
Esta clase se encuentra en el
paquete javax.swing para
importarla utilizamos la sintaxis:
import javax.swing.*;
Jerarquia Swing
Como vemos importamos la clase
JFrame del paquete javax.swing:
import javax.swing.JFrame;
Y luego en la main definimos y
creamos un objeto de la clase
JFrame (llamando luego a los
métodos setBounds, setVisible y
setDefaultCloseOperation)
El método setBounds ubica el
JFrame (la ventana) en la
columna 10, fila 20 con un ancho
de 400 píxeles y un alto de 300.
JFrame
import javax.swing.*;
public class Formulario extends JFrame{
public Formulario() {
setLayout(null);}
public static void main(String[] args) {
Formulario formulario1=new Formulario();
formulario1.setBounds(10,20,400,300);
formulario1.setVisible(true);
formulario1.setDefaultCloseOperation(JFrame.
EXIT_ON_CLOSE);}}
La segunda componente de la
librería swing llamada JLabel. La
clase JLabel nos permite mostrar
básicamente un texto.
Importamos el paquete
javax.swing donde se encuentran
definidas las clase JFrame y
JLabel: En el constructor creamos
Jlabel.
JLabel
import javax.swing.*;
public class Formulario extends JFrame {
private JLabel label1,label2;
public Formulario() {
setLayout(null);
label1=new JLabel("Sistema de Facturación.");
label1.setBounds(10,20,300,30);
add(label1);
public static void main(String[] args) {
Formulario formulario1=new Formulario();
formulario1.setBounds(0,0,300,200);
formulario1.setVisible(true);
formulario1.setDefaultCloseOperation(JFrame.EXIT_ON
_CLOSE);}}
El tercer control visual de uso
muy común es el que provee la
clase JButton. Este control visual
muestra un botón. Ahora
veremos la captura de eventos
con los controles visuales. Uno de
los eventos más comunes es
cuando hacemos clic sobre un
botón.
JButton
import java.awt.event.*;
public class Formulario extends JFrame implements
ActionListener{
JButton boton1;
public Formulario() {
setLayout(null);
boton1=new JButton("Finalizar");
boton1.setBounds(300,250,100,30);
add(boton1);
boton1.addActionListener(this);}
public void actionPerformed(ActionEvent e) {
if (e.getSource()==boton1) {
System.exit(0);
}
}
• Se quiere construir una aplicación que permita
registrar las notas de un curso. Un curso está
conformado por 12 estudiantes. De cada
estudiante solo se conoce su nota, que se
encuentra en formato decimal y debe ser un valor
entre 0 y 5. La aplicación debe permitir:
1. Registrar la nota de un estudiante.
2. Calcular el promedio de las notas de todos los
estudiantes.
3. Calcular la cantidad de estudiantes que están por
encima del promedio.
Ejemplo Interfaz 1
Así como podríamos decir que el
control JLabel remplaza a la
salida estándar System.out.print,
el control JTextField cumple la
función de la clase Scanner para
la entrada de datos.
El control JTextField permite al
operador del programa ingresar
una cadena de caracteres por
teclado.
JTextField
import javax.swing.*;
import java.awt.event.*;
public class Formulario extends JFrame implements
ActionListener{
private JTextField textfield1;
private JLabel label1;
public Formulario() {
setLayout(null);
label1=new JLabel("Usuario:");
label1.setBounds(10,10,100,30);
add(label1);
textfield1=new JTextField();
textfield1.setBounds(120,10,150,20);
add(textfield1);
}
El control de tipo JTextArea
permite ingresar múltiples líneas,
a diferencia del control de tipo
JTextField. Debemos crear un
objeto de la clase JScrollPane y
añadir en su interior el objeto de
la clase JTextArea.
JTextArea
import javax.swing.*;
public class Formulario extends JFrame{
private JTextField textfield1;
private JScrollPane scrollpane1;
private JTextArea textarea1;
public Formulario() {
setLayout(null);
textfield1=new JTextField();
textfield1.setBounds(10,10,200,30);
add(textfield1);
textarea1=new JTextArea();
scrollpane1=new JScrollPane(textarea1);
scrollpane1.setBounds(10,50,400,300);
add(scrollpane1);}
El control JComboBox permite
seleccionar un String de una lista.
Para inicializar los String que
contendrá el JComboBox
debemos llamar al método
addItem tantas veces como
elementos queremos cargar.
Debemos implementar la
interface ItemListener.
JComboBox
import javax.swing.*;
import java.awt.event.*;
public class Formulario extends JFrame implements
ItemListener{
private JComboBox<String> combo1;
public Formulario() {
setLayout(null);
combo1=new JComboBox<String>();
combo1.setBounds(10,10,80,20);
add(combo1);
combo1.addItem("rojo");
combo1.addItem("verde");
combo1.addItem("azul");
combo1.addItemListener(this);
}
Del empleado se maneja la siguiente información:
- Nombre, Apellido, Género (femenino o masculino), Fecha de
nacimiento, Foto, Fecha de ingreso a la empresa y Salario
básico. La aplicación permite: Edad del empleado, utilizando la
fecha de nacimiento del empleado. Antigüedad del empleado,
utilizando la fecha de ingreso del empleado. Prestaciones a las
que tiene derecho el empleado. Para este cálculo se debe usar
la siguiente fórmula: prestaciones= (antiguedad*salario)/12
Ejemplo Interfaz 2
El control JCheckBox permite
implementar un cuadro de
selección (básicamente un botón
de dos estados). El cambio de
estado del JCheckBox hay que
implementar la interface
ChangeListener que se encuentra
en el paquete:
JCheckBox
import javax.swing.*;
import javax.swing.event.*;
public class Formulario extends JFrame
implements ChangeListener{
private JCheckBox check1,check2,check3;
public Formulario() {
setLayout(null);
check1=new JCheckBox("Inglés");
check1.setBounds(10,10,150,30);
check1.addChangeListener(this);
add(check1);
}
Otro control visual muy común es
el JRadioButton que
normalmente se muestran un
conjunto de JRadioButton y
permiten la selección de solo uno
de ellos. Se los debe agrupar para
que actúen en conjunto.
JRadioButton
import javax.swing.*;
public class Formulario extends JFrame
implements ChangeListener{
private JRadioButton radio1;
private ButtonGroup bg;
public Formulario() {
setLayout(null);
bg=new ButtonGroup();
radio1=new JRadioButton("640*480");
radio1.setBounds(10,20,100,30);
radio1.addChangeListener(this);
add(radio1);
bg.add(radio1);}
Ahora veremos como crear un
menú de opciones y la captura de
eventos de los mismos. Cuando
necesitamos implementar un
menú requerimos de un objeto
de la clase JMenuBar, uno o más
objetos de la clase JMenu y por
último objetos de la clase
JMenuItem.
JMenuBar, JMenu, JMenuItem
import javax.swing.*;
public class Formulario extends JFrame implements
ActionListener{
private JMenuBar mb;
private JMenu menu1;
private JMenuItem mi1,mi2,mi3;
public Formulario() {
setLayout(null);
mb=new JMenuBar();
setJMenuBar(mb);
menu1=new JMenu("Opciones");
mb.add(menu1);
mi1=new JMenuItem("Rojo");
mi1.addActionListener(this);
menu1.add(mi1);
}
El cual nos permite construir una
tabla a partir de dos parámetros;
el primero de ellos: rowData es
un array bidimencional de
objetos que representa el
contenido de la tabla, y el
segundo: columnNames
representa los nombres de cada
columna, contenidos también en
un array que por lo general es un
Array.
JTable
public class SimpleTable1 extends JFrame
{
public SimpleTable1() {
super("Ejemplo 1");
Object[][] data = {
{"Mary", "Campione", "Esquiar", new Inte
ger(5), new Boolean(false)},};
String[] columnNames = {"Nombre", "Apel
lido", "Pasatiempo",
"Años de Practica", "Soltero(a)"};
final JTable table = new JTable(data, co
lumnNames);
table.setPreferredScrollableViewportSize
(new Dimension(500, 70));
JScrollPane scrollPane = new JScrollPane
(table);
getContentPane().add(scrollPane, BorderL
ayout.CENTER);
El JSpinner es un componente
java en el que se presenta una
caja de texto con dos flechitas en
el lado derecho, una hacia arriba
y la otra hacia abajo. En el campo
de texto se muestra un valor. Con
las flechitas arriba y abajo
podemos incrementar o
decrementar ese valor.
JSpinner
public PruebaJSpinner()
{
spinner = new JSpinner();
spinner.setValue(30);
spinner.addChangeListener(new Ch
angeListener() {
@Override
public void stateChanged(Cha
ngeEvent e) {
// Ponemos el valor del
JSpinner en el JTextField
tf.setText(spinner.getVa
lue().toString());
}
}
Se quiere crear un programa que permita administrar una tienda de
libros. La tienda tiene un catálogo de libros, que son los libros que
desea poner a la venta. La aplicación permite abastecer la tienda
con ejemplares de los libros del catálogo y venderlos.
Adicionalmente permite saber cuánto dinero se tiene en caja,
empezando con una inversión inicial de $1.000.000.
De cada libro se conoce:
- ISBN. Identificador del libro. No pueden existir dos libros en la
tienda con el mismo ISBN.
- Título. El nombre del libro.
- Precio de compra: Valor pagado por la compra de cada ejemplar en
la tienda.
- Precio de venta: Valor por el cual se vende cada ejemplar del libro.
- Cantidad actual. Cantidad actual de ejemplares que tiene la tienda.
Solo puede ser modificada mediante la venta o abastecimiento.
Ejemplo Interfaz 3
“Quizás la mayor fortaleza de un
enfoque de desarrollo orientado a
objetos es que ofrece un
mecanismo que captura un modelo
del mundo real".
Grady Booch

Más contenido relacionado

La actualidad más candente

Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionIrving Che
 
Guia practica secuenciales en java con NetBeans 01
Guia practica secuenciales en java con NetBeans 01Guia practica secuenciales en java con NetBeans 01
Guia practica secuenciales en java con NetBeans 01Emerson Garay
 
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPCUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPdisenarUniminuto
 
Comparacion Java Swing y awt
Comparacion Java Swing y awtComparacion Java Swing y awt
Comparacion Java Swing y awtJessicavergara273
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 
Aplicación de escritorio con java
Aplicación de escritorio con javaAplicación de escritorio con java
Aplicación de escritorio con javaEmerson Garay
 
DIFERENCIAS Y COMPARACIONES DE SOFTWARE LIBRE
DIFERENCIAS Y COMPARACIONES DE SOFTWARE LIBRE DIFERENCIAS Y COMPARACIONES DE SOFTWARE LIBRE
DIFERENCIAS Y COMPARACIONES DE SOFTWARE LIBRE FreddaAlessandraNezR
 
3. Modelos OSI y TCP/IP
3.	Modelos OSI y TCP/IP 3.	Modelos OSI y TCP/IP
3. Modelos OSI y TCP/IP Saul Curitomay
 
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
 
4.1. Funciones de la capa de red
4.1. Funciones de la capa de red4.1. Funciones de la capa de red
4.1. Funciones de la capa de redEdison Coimbra G.
 
Subdivision de redes
Subdivision de redesSubdivision de redes
Subdivision de redesUPTM
 
Protocolo tftp
Protocolo tftpProtocolo tftp
Protocolo tftpkarivperez
 

La actualidad más candente (20)

Java
JavaJava
Java
 
Controles swing
Controles swingControles swing
Controles swing
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacion
 
Guia practica secuenciales en java con NetBeans 01
Guia practica secuenciales en java con NetBeans 01Guia practica secuenciales en java con NetBeans 01
Guia practica secuenciales en java con NetBeans 01
 
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPCUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
 
Comparacion Java Swing y awt
Comparacion Java Swing y awtComparacion Java Swing y awt
Comparacion Java Swing y awt
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Aplicación de escritorio con java
Aplicación de escritorio con javaAplicación de escritorio con java
Aplicación de escritorio con java
 
Java Threads (Hilos en Java)
Java Threads (Hilos en Java)Java Threads (Hilos en Java)
Java Threads (Hilos en Java)
 
DIFERENCIAS Y COMPARACIONES DE SOFTWARE LIBRE
DIFERENCIAS Y COMPARACIONES DE SOFTWARE LIBRE DIFERENCIAS Y COMPARACIONES DE SOFTWARE LIBRE
DIFERENCIAS Y COMPARACIONES DE SOFTWARE LIBRE
 
Comandos java
Comandos javaComandos java
Comandos java
 
3. Modelos OSI y TCP/IP
3.	Modelos OSI y TCP/IP 3.	Modelos OSI y TCP/IP
3. Modelos OSI y TCP/IP
 
Programación de aplicaciones móviles
Programación de aplicaciones móvilesProgramación de aplicaciones móviles
Programación de aplicaciones móviles
 
Java GUI La librería Swing
Java GUI La librería Swing Java GUI La librería Swing
Java GUI La librería Swing
 
4.1. Funciones de la capa de red
4.1. Funciones de la capa de red4.1. Funciones de la capa de red
4.1. Funciones de la capa de red
 
Introducción a Java FX
Introducción a Java FXIntroducción a Java FX
Introducción a Java FX
 
El lenguaje c#
El lenguaje c#El lenguaje c#
El lenguaje c#
 
Subdivision de redes
Subdivision de redesSubdivision de redes
Subdivision de redes
 
Protocolo tftp
Protocolo tftpProtocolo tftp
Protocolo tftp
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 

Similar a Semana 5 Java Swing (20)

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
 
Programación i
Programación iProgramación i
Programación i
 
Swing
SwingSwing
Swing
 
Flow layout
Flow layoutFlow layout
Flow layout
 
Ejemplo j internalframe_gine
Ejemplo j internalframe_gineEjemplo j internalframe_gine
Ejemplo j internalframe_gine
 
Programacion en JAVA 2
Programacion en JAVA 2Programacion en JAVA 2
Programacion en JAVA 2
 
Java tema06a
Java tema06aJava tema06a
Java tema06a
 
Temaswing
TemaswingTemaswing
Temaswing
 
Curso java 6
Curso java 6Curso java 6
Curso java 6
 
2 interfaces graficas_de_usuario (1)
2 interfaces graficas_de_usuario (1)2 interfaces graficas_de_usuario (1)
2 interfaces graficas_de_usuario (1)
 
Lab3-POO
Lab3-POOLab3-POO
Lab3-POO
 
6.eventos y swing
6.eventos y swing6.eventos y swing
6.eventos y swing
 
Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01
 
Manejo de eventos en java
Manejo de eventos en javaManejo de eventos en java
Manejo de eventos en java
 
Eventos
EventosEventos
Eventos
 
Interfaces con Java
Interfaces con JavaInterfaces con Java
Interfaces con Java
 
Guis en java-1pp_2011_
Guis en java-1pp_2011_Guis en java-1pp_2011_
Guis en java-1pp_2011_
 
Taller 1 7
Taller 1 7Taller 1 7
Taller 1 7
 
Tipos De Comportamiento
Tipos De ComportamientoTipos De Comportamiento
Tipos De Comportamiento
 
Control de JTable
Control de JTableControl de JTable
Control de JTable
 

Más de Richard Eliseo Mendoza Gafaro

PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCIPARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCIRichard Eliseo Mendoza Gafaro
 

Más de Richard Eliseo Mendoza Gafaro (20)

CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEICUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
 
Material_para_Estudiante_DMPC_V012022A_SP_1
Material_para_Estudiante_DMPC_V012022A_SP_1Material_para_Estudiante_DMPC_V012022A_SP_1
Material_para_Estudiante_DMPC_V012022A_SP_1
 
MANUAL DE ORACLE AUTONOMOUS DATABASE
MANUAL DE ORACLE AUTONOMOUS DATABASEMANUAL DE ORACLE AUTONOMOUS DATABASE
MANUAL DE ORACLE AUTONOMOUS DATABASE
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
 
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCIPARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
 
PARCIAL 2 DESARROLLO DE INTERFACES UI UX
PARCIAL 2 DESARROLLO DE INTERFACES UI UXPARCIAL 2 DESARROLLO DE INTERFACES UI UX
PARCIAL 2 DESARROLLO DE INTERFACES UI UX
 
Explicación cadena de valor
Explicación cadena de valorExplicación cadena de valor
Explicación cadena de valor
 
MANUAL DESPLIEGUE SERVIDOR WEB
MANUAL DESPLIEGUE SERVIDOR WEBMANUAL DESPLIEGUE SERVIDOR WEB
MANUAL DESPLIEGUE SERVIDOR WEB
 
MANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCH
MANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCHMANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCH
MANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCH
 
CUESTIONARIO INTRODUCCION A UNITY 3D v2
CUESTIONARIO INTRODUCCION A UNITY 3D v2CUESTIONARIO INTRODUCCION A UNITY 3D v2
CUESTIONARIO INTRODUCCION A UNITY 3D v2
 
CUESTIONARIO INTRODUCCION A UNITY 3D
CUESTIONARIO INTRODUCCION A UNITY 3DCUESTIONARIO INTRODUCCION A UNITY 3D
CUESTIONARIO INTRODUCCION A UNITY 3D
 
MANUAL DESPLIEGUE SERVIDOR BASE DE DATOS
MANUAL DESPLIEGUE SERVIDOR BASE DE DATOSMANUAL DESPLIEGUE SERVIDOR BASE DE DATOS
MANUAL DESPLIEGUE SERVIDOR BASE DE DATOS
 
INTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOSINTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOS
 
CLASE 2 ORACLE CLOUD
CLASE 2 ORACLE CLOUDCLASE 2 ORACLE CLOUD
CLASE 2 ORACLE CLOUD
 
CASOS DE ESTUDIO MODELADO DEL NEGOCIO
CASOS DE ESTUDIO MODELADO DEL NEGOCIOCASOS DE ESTUDIO MODELADO DEL NEGOCIO
CASOS DE ESTUDIO MODELADO DEL NEGOCIO
 
MATERIAL DE ESTUDIO CCNA
MATERIAL DE ESTUDIO CCNAMATERIAL DE ESTUDIO CCNA
MATERIAL DE ESTUDIO CCNA
 
PREGUNTAS TOGAF 9.2 RESPUESTAS
PREGUNTAS TOGAF 9.2 RESPUESTASPREGUNTAS TOGAF 9.2 RESPUESTAS
PREGUNTAS TOGAF 9.2 RESPUESTAS
 

Último

introducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesintroducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesgovovo2388
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZgustavoiashalom
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfdanielJAlejosC
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDEdith Puclla
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILClase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILProblemSolved
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfs7yl3dr4g0n01
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASPersonalJesusGranPod
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajasjuanprv
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCarlosGabriel96
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfannavarrom
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 

Último (20)

introducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesintroducción a las comunicaciones satelitales
introducción a las comunicaciones satelitales
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILClase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 

Semana 5 Java Swing

  • 1. INTERFAZ GRAFICA EN JAVA Mg. Richard E. Mendoza G.
  • 2.
  • 3. AWT(Abstract Window Toolkit) Tiene la ventaja de que las aplicaciones se parecen mucho al Sistemas Operativo sobe el que se ejecuta. Su principal desventaja que carga el Sistema Operativo y además no se pueden introducir cambios en el aspecto de los componentes Se encuentra en la librería java.AWT No tiene MVC AWT Y SWING Swing Programado en código no nativo, por lo que es mas portable. Estos componentes son mas potentes que los anteriores y se identifican con una J antes del nombre. Sus componentes se encuentran en la librería javax.swing y son todos subclases de la clase Jcomponente.Swing Soporta MVC
  • 4. forma parte de Java Foundation Classes (JFC) que se utiliza para crear aplicaciones basadas en ventanas. Está construido sobre la API de AWT (Abstract Windowing Toolkit) y completamente escrito en Java. El paquete javax.swing proporciona clases para Java swing API como JButton, JTextField, JTextArea, JRadioButton, JCheckbox, JMenu, JColorChooser, etc. ¿Qué es SWING?
  • 5. La componente básica que requerimos cada vez que implementamos una interfaz visual con la libraría Swing es la clase JFrame. Esta clase encapsula una Ventana clásica de cualquier sistema operativo con entorno gráfico (Windows, OS X, Linux etc.) Esta clase se encuentra en el paquete javax.swing para importarla utilizamos la sintaxis: import javax.swing.*; Jerarquia Swing
  • 6. Como vemos importamos la clase JFrame del paquete javax.swing: import javax.swing.JFrame; Y luego en la main definimos y creamos un objeto de la clase JFrame (llamando luego a los métodos setBounds, setVisible y setDefaultCloseOperation) El método setBounds ubica el JFrame (la ventana) en la columna 10, fila 20 con un ancho de 400 píxeles y un alto de 300. JFrame import javax.swing.*; public class Formulario extends JFrame{ public Formulario() { setLayout(null);} public static void main(String[] args) { Formulario formulario1=new Formulario(); formulario1.setBounds(10,20,400,300); formulario1.setVisible(true); formulario1.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);}}
  • 7. La segunda componente de la librería swing llamada JLabel. La clase JLabel nos permite mostrar básicamente un texto. Importamos el paquete javax.swing donde se encuentran definidas las clase JFrame y JLabel: En el constructor creamos Jlabel. JLabel import javax.swing.*; public class Formulario extends JFrame { private JLabel label1,label2; public Formulario() { setLayout(null); label1=new JLabel("Sistema de Facturación."); label1.setBounds(10,20,300,30); add(label1); public static void main(String[] args) { Formulario formulario1=new Formulario(); formulario1.setBounds(0,0,300,200); formulario1.setVisible(true); formulario1.setDefaultCloseOperation(JFrame.EXIT_ON _CLOSE);}}
  • 8. El tercer control visual de uso muy común es el que provee la clase JButton. Este control visual muestra un botón. Ahora veremos la captura de eventos con los controles visuales. Uno de los eventos más comunes es cuando hacemos clic sobre un botón. JButton import java.awt.event.*; public class Formulario extends JFrame implements ActionListener{ JButton boton1; public Formulario() { setLayout(null); boton1=new JButton("Finalizar"); boton1.setBounds(300,250,100,30); add(boton1); boton1.addActionListener(this);} public void actionPerformed(ActionEvent e) { if (e.getSource()==boton1) { System.exit(0); } }
  • 9. • Se quiere construir una aplicación que permita registrar las notas de un curso. Un curso está conformado por 12 estudiantes. De cada estudiante solo se conoce su nota, que se encuentra en formato decimal y debe ser un valor entre 0 y 5. La aplicación debe permitir: 1. Registrar la nota de un estudiante. 2. Calcular el promedio de las notas de todos los estudiantes. 3. Calcular la cantidad de estudiantes que están por encima del promedio. Ejemplo Interfaz 1
  • 10. Así como podríamos decir que el control JLabel remplaza a la salida estándar System.out.print, el control JTextField cumple la función de la clase Scanner para la entrada de datos. El control JTextField permite al operador del programa ingresar una cadena de caracteres por teclado. JTextField import javax.swing.*; import java.awt.event.*; public class Formulario extends JFrame implements ActionListener{ private JTextField textfield1; private JLabel label1; public Formulario() { setLayout(null); label1=new JLabel("Usuario:"); label1.setBounds(10,10,100,30); add(label1); textfield1=new JTextField(); textfield1.setBounds(120,10,150,20); add(textfield1); }
  • 11. El control de tipo JTextArea permite ingresar múltiples líneas, a diferencia del control de tipo JTextField. Debemos crear un objeto de la clase JScrollPane y añadir en su interior el objeto de la clase JTextArea. JTextArea import javax.swing.*; public class Formulario extends JFrame{ private JTextField textfield1; private JScrollPane scrollpane1; private JTextArea textarea1; public Formulario() { setLayout(null); textfield1=new JTextField(); textfield1.setBounds(10,10,200,30); add(textfield1); textarea1=new JTextArea(); scrollpane1=new JScrollPane(textarea1); scrollpane1.setBounds(10,50,400,300); add(scrollpane1);}
  • 12. El control JComboBox permite seleccionar un String de una lista. Para inicializar los String que contendrá el JComboBox debemos llamar al método addItem tantas veces como elementos queremos cargar. Debemos implementar la interface ItemListener. JComboBox import javax.swing.*; import java.awt.event.*; public class Formulario extends JFrame implements ItemListener{ private JComboBox<String> combo1; public Formulario() { setLayout(null); combo1=new JComboBox<String>(); combo1.setBounds(10,10,80,20); add(combo1); combo1.addItem("rojo"); combo1.addItem("verde"); combo1.addItem("azul"); combo1.addItemListener(this); }
  • 13. Del empleado se maneja la siguiente información: - Nombre, Apellido, Género (femenino o masculino), Fecha de nacimiento, Foto, Fecha de ingreso a la empresa y Salario básico. La aplicación permite: Edad del empleado, utilizando la fecha de nacimiento del empleado. Antigüedad del empleado, utilizando la fecha de ingreso del empleado. Prestaciones a las que tiene derecho el empleado. Para este cálculo se debe usar la siguiente fórmula: prestaciones= (antiguedad*salario)/12 Ejemplo Interfaz 2
  • 14. El control JCheckBox permite implementar un cuadro de selección (básicamente un botón de dos estados). El cambio de estado del JCheckBox hay que implementar la interface ChangeListener que se encuentra en el paquete: JCheckBox import javax.swing.*; import javax.swing.event.*; public class Formulario extends JFrame implements ChangeListener{ private JCheckBox check1,check2,check3; public Formulario() { setLayout(null); check1=new JCheckBox("Inglés"); check1.setBounds(10,10,150,30); check1.addChangeListener(this); add(check1); }
  • 15. Otro control visual muy común es el JRadioButton que normalmente se muestran un conjunto de JRadioButton y permiten la selección de solo uno de ellos. Se los debe agrupar para que actúen en conjunto. JRadioButton import javax.swing.*; public class Formulario extends JFrame implements ChangeListener{ private JRadioButton radio1; private ButtonGroup bg; public Formulario() { setLayout(null); bg=new ButtonGroup(); radio1=new JRadioButton("640*480"); radio1.setBounds(10,20,100,30); radio1.addChangeListener(this); add(radio1); bg.add(radio1);}
  • 16. Ahora veremos como crear un menú de opciones y la captura de eventos de los mismos. Cuando necesitamos implementar un menú requerimos de un objeto de la clase JMenuBar, uno o más objetos de la clase JMenu y por último objetos de la clase JMenuItem. JMenuBar, JMenu, JMenuItem import javax.swing.*; public class Formulario extends JFrame implements ActionListener{ private JMenuBar mb; private JMenu menu1; private JMenuItem mi1,mi2,mi3; public Formulario() { setLayout(null); mb=new JMenuBar(); setJMenuBar(mb); menu1=new JMenu("Opciones"); mb.add(menu1); mi1=new JMenuItem("Rojo"); mi1.addActionListener(this); menu1.add(mi1); }
  • 17. El cual nos permite construir una tabla a partir de dos parámetros; el primero de ellos: rowData es un array bidimencional de objetos que representa el contenido de la tabla, y el segundo: columnNames representa los nombres de cada columna, contenidos también en un array que por lo general es un Array. JTable public class SimpleTable1 extends JFrame { public SimpleTable1() { super("Ejemplo 1"); Object[][] data = { {"Mary", "Campione", "Esquiar", new Inte ger(5), new Boolean(false)},}; String[] columnNames = {"Nombre", "Apel lido", "Pasatiempo", "Años de Practica", "Soltero(a)"}; final JTable table = new JTable(data, co lumnNames); table.setPreferredScrollableViewportSize (new Dimension(500, 70)); JScrollPane scrollPane = new JScrollPane (table); getContentPane().add(scrollPane, BorderL ayout.CENTER);
  • 18. El JSpinner es un componente java en el que se presenta una caja de texto con dos flechitas en el lado derecho, una hacia arriba y la otra hacia abajo. En el campo de texto se muestra un valor. Con las flechitas arriba y abajo podemos incrementar o decrementar ese valor. JSpinner public PruebaJSpinner() { spinner = new JSpinner(); spinner.setValue(30); spinner.addChangeListener(new Ch angeListener() { @Override public void stateChanged(Cha ngeEvent e) { // Ponemos el valor del JSpinner en el JTextField tf.setText(spinner.getVa lue().toString()); } }
  • 19. Se quiere crear un programa que permita administrar una tienda de libros. La tienda tiene un catálogo de libros, que son los libros que desea poner a la venta. La aplicación permite abastecer la tienda con ejemplares de los libros del catálogo y venderlos. Adicionalmente permite saber cuánto dinero se tiene en caja, empezando con una inversión inicial de $1.000.000. De cada libro se conoce: - ISBN. Identificador del libro. No pueden existir dos libros en la tienda con el mismo ISBN. - Título. El nombre del libro. - Precio de compra: Valor pagado por la compra de cada ejemplar en la tienda. - Precio de venta: Valor por el cual se vende cada ejemplar del libro. - Cantidad actual. Cantidad actual de ejemplares que tiene la tienda. Solo puede ser modificada mediante la venta o abastecimiento. Ejemplo Interfaz 3
  • 20. “Quizás la mayor fortaleza de un enfoque de desarrollo orientado a objetos es que ofrece un mecanismo que captura un modelo del mundo real". Grady Booch