SlideShare una empresa de Scribd logo
5
Lo más leído
13
Lo más leído
19
Lo más leído
INTERFAZ GRAFICA EN
JAVA
Mg. Richard E. Mendoza G.
Semana 5   Java Swing
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

PDF
Sesion12-componentes Visuales java
PDF
8b Curso de POO en java - paso de diagrama clases a java 1
PPSX
Conceptos poo (presentación1)
PDF
Guardar imagen en base de datos mysql blob IDE NETBEANS
PPT
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
PPTX
PPTX
Sesion12-componentes Visuales java
8b Curso de POO en java - paso de diagrama clases a java 1
Conceptos poo (presentación1)
Guardar imagen en base de datos mysql blob IDE NETBEANS
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales

La actualidad más candente (20)

PDF
Unidad 1 verificacion y-validacion
PDF
Modelo entidad relacion
PPTX
UML - Analisis de Sistemas
PPTX
Programacion web c5 programacion del lado servidor
PDF
Proyecto programacion
PPTX
Programacion orientada a objetos Java
PPTX
Programacion Orientada a Objetos
PDF
Unidad 2 clases y objetos
PPTX
Introducción al Análisis Orientado a Objetos
PPTX
Partes de la pantalla de eclipse
PDF
Descripcion Caso De Uso
PPTX
Patrón de diseño Modelo-Vista-Controlador (MVC)
PPTX
Presentación JavaScript
PPT
Usos del visual basic
PPT
4 Clase Metodologia De Desarrolo De Software
PPTX
Java GUI La librería Swing
PPT
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
PPTX
Componentes de eclipse
Unidad 1 verificacion y-validacion
Modelo entidad relacion
UML - Analisis de Sistemas
Programacion web c5 programacion del lado servidor
Proyecto programacion
Programacion orientada a objetos Java
Programacion Orientada a Objetos
Unidad 2 clases y objetos
Introducción al Análisis Orientado a Objetos
Partes de la pantalla de eclipse
Descripcion Caso De Uso
Patrón de diseño Modelo-Vista-Controlador (MVC)
Presentación JavaScript
Usos del visual basic
4 Clase Metodologia De Desarrolo De Software
Java GUI La librería Swing
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Componentes de eclipse
Publicidad

Similar a Semana 5 Java Swing (20)

PDF
Manuales seminario java-manualdejava-sem 3 - 4
DOCX
PDF
Swing
 
DOCX
Ejemplo j internalframe_gine
PDF
Programacion en JAVA 2
PDF
Java tema06a
PPT
Temaswing
PDF
Curso java 6
PDF
2 interfaces graficas_de_usuario (1)
PPT
6.eventos y swing
PDF
Miswing 110511215936-phpapp01
PPTX
Manejo de eventos en java
PPT
Eventos
PPTX
Interfaces con Java
PPTX
5. Gestores de Posicionamiento - Eventos.pptx
PDF
Guis en java-1pp_2011_
PPT
PPT
Tipos De Comportamiento
PPTX
Manuales seminario java-manualdejava-sem 3 - 4
Swing
 
Ejemplo j internalframe_gine
Programacion en JAVA 2
Java tema06a
Temaswing
Curso java 6
2 interfaces graficas_de_usuario (1)
6.eventos y swing
Miswing 110511215936-phpapp01
Manejo de eventos en java
Eventos
Interfaces con Java
5. Gestores de Posicionamiento - Eventos.pptx
Guis en java-1pp_2011_
Tipos De Comportamiento
Publicidad

Más de Richard Eliseo Mendoza Gafaro (20)

PDF
INTRODUCCION A ORACLE APEX MODELO RELACIONAL PARCIAL 2
PDF
PARCIAL INTRODUCCION BASES DE DATOS CORTE 1
PDF
TALLER 1. BASE DE DATOS MER Y ORACLE DATAMODELER
PDF
TELEMATICA 1 - UNIDAD 1 - REDES DE COMUNICACION
PDF
TELEMATICA 1 - UNIDAD 1 - REDES DE COMUNICACION
PDF
PARCIAL 3 BASES DE DATOS NOSQL ENUNCIADOS
PDF
SISTEMAS INFORMATICOS PARA TELEMATICA - REDES DE DATOS
PDF
LEGISLACION - TRABAJO EN ALTURAS - NORMATIVA
PDF
TELEMATICA 3 - INTRODUCCION SEGURIDAD INFORMATICA
PDF
INTRODUCCION BASES DE DATOS - NOSQL - MONGODB
PPTX
BASES DE DATOS - NORMALIZACION(TALLER CINE)
PDF
TELEMATICA 3 - CAPA DE APLICACION FTP SMTP PROXY Y FIREWALL
PPTX
SISTEMAS INFORMATICOS PARA TELEMATICA - SISTEMAS OPERATIVOS
PDF
PARCIAL 2 BASES DE DATOS DEFINITIVO PAGINA 2
PDF
PARCIAL 2 BASES DE DATOS DEFINITIVO PAGINA 1
PDF
EJERCICIO TAQUILLA LIVE MEDPLUS LINKIN PARK
PPTX
BASES DE DATOS - MODELO RELACIONAL(TABLAS)
PDF
ENUNCIADO PARCIAL 1 BASES DE DATOS (PRACTICO)
PDF
LEGISLACION EN TELECOMUNICACIONES - LEAN CANVAS V2
PDF
LEGISLACION EN TELECOMUNICACIONES - ORGANIZACIONES
INTRODUCCION A ORACLE APEX MODELO RELACIONAL PARCIAL 2
PARCIAL INTRODUCCION BASES DE DATOS CORTE 1
TALLER 1. BASE DE DATOS MER Y ORACLE DATAMODELER
TELEMATICA 1 - UNIDAD 1 - REDES DE COMUNICACION
TELEMATICA 1 - UNIDAD 1 - REDES DE COMUNICACION
PARCIAL 3 BASES DE DATOS NOSQL ENUNCIADOS
SISTEMAS INFORMATICOS PARA TELEMATICA - REDES DE DATOS
LEGISLACION - TRABAJO EN ALTURAS - NORMATIVA
TELEMATICA 3 - INTRODUCCION SEGURIDAD INFORMATICA
INTRODUCCION BASES DE DATOS - NOSQL - MONGODB
BASES DE DATOS - NORMALIZACION(TALLER CINE)
TELEMATICA 3 - CAPA DE APLICACION FTP SMTP PROXY Y FIREWALL
SISTEMAS INFORMATICOS PARA TELEMATICA - SISTEMAS OPERATIVOS
PARCIAL 2 BASES DE DATOS DEFINITIVO PAGINA 2
PARCIAL 2 BASES DE DATOS DEFINITIVO PAGINA 1
EJERCICIO TAQUILLA LIVE MEDPLUS LINKIN PARK
BASES DE DATOS - MODELO RELACIONAL(TABLAS)
ENUNCIADO PARCIAL 1 BASES DE DATOS (PRACTICO)
LEGISLACION EN TELECOMUNICACIONES - LEAN CANVAS V2
LEGISLACION EN TELECOMUNICACIONES - ORGANIZACIONES

Último (20)

DOCX
Cumplimiento normativo y realidad laboral
PPT
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
PPTX
Cortinas-en-Presas-de-Gravedad-Vertedoras-y-No-Vertedoras.pptx
PPTX
Presentación - Taller interpretación iso 9001-Solutions consulting learning.pptx
PPTX
NILS actividad 4 PRESENTACION.pptx pppppp
PDF
Electricidad-Estatica-Peligros-Prevencion.pdf
PDF
Perfilaje de Pozos _20250624_222013_0000.pdf
PDF
Módulo-de Alcance-proyectos - Definición.pdf
PDF
Durabilidad del concreto en zonas costeras
PDF
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
PPTX
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
PPTX
Contexto Normativo NSR10, presentacion 2025
PDF
CALIDAD SSOMA AMBIENTE PRL UNIVERSIDADDD
PPTX
MODULO 2. METODOLOGIAS PARA ANALISIS DE RIESGOS 2da Parte.pptx
PPTX
1 CONTAMINACION AMBIENTAL EN EL PLANETA.pptx
DOCX
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
PPTX
CAPACITACIÓN DE USO ADECUADO DE EPP.pptx
PDF
Oficio SEC 293416 Comision Investigadora
DOC
informacion acerca de la crianza tecnificada de cerdos
PDF
SEC formula cargos al Consejo Directivo del Coordinador y a ocho eléctricas p...
Cumplimiento normativo y realidad laboral
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
Cortinas-en-Presas-de-Gravedad-Vertedoras-y-No-Vertedoras.pptx
Presentación - Taller interpretación iso 9001-Solutions consulting learning.pptx
NILS actividad 4 PRESENTACION.pptx pppppp
Electricidad-Estatica-Peligros-Prevencion.pdf
Perfilaje de Pozos _20250624_222013_0000.pdf
Módulo-de Alcance-proyectos - Definición.pdf
Durabilidad del concreto en zonas costeras
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
Contexto Normativo NSR10, presentacion 2025
CALIDAD SSOMA AMBIENTE PRL UNIVERSIDADDD
MODULO 2. METODOLOGIAS PARA ANALISIS DE RIESGOS 2da Parte.pptx
1 CONTAMINACION AMBIENTAL EN EL PLANETA.pptx
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
CAPACITACIÓN DE USO ADECUADO DE EPP.pptx
Oficio SEC 293416 Comision Investigadora
informacion acerca de la crianza tecnificada de cerdos
SEC formula cargos al Consejo Directivo del Coordinador y a ocho eléctricas p...

Semana 5 Java Swing

  • 1. INTERFAZ GRAFICA EN JAVA Mg. Richard E. Mendoza G.
  • 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