UNIVERSIDAD ABIERTA Y A DISTANCIA DE MÉXICO INGENIERÍA EN DESARROLLO DE SOFTWARE ASIGNATURA: PROGRAMACIÓN ORIENTADA A OBJETOS II UNIDAD II: COMPONENTES GRÁFICOS ACTIVIDAD 2: BIBLIOTECA DE CLASES JFC ALUMNO: SERGIO VARGAS OLIVARES MATRICULA: ES1511108843 DOCENTE: MARIA DE LOURDES VILLANUEVA VEGA
División de Ciencias Exactas, Ingeniería y Tecnología
Características Un amplio grupo de componentes de usuario Un modelo de manejo de eventos robusto
AWT
Herramientas gráficas y de imágenes (clases de Formas, colores y fuentes) Manejadores de diseño que no dependen del tamaño de pantalla o resolución Clases de transferencia de datos, para copiar-pegar a través del portapapeles de la plataforma
Componentes básicos
Funcionalidades
Button CheckBox CheckBoxMenuItem Choice Container List MenuItem ScrollBar TextComponent TextField Window
Son clases que permiten generar entornos con componentes gráficos comunes y gestionar eventos de teclado, ratón, etc. El aspecto visual depende de la plataforma donde se trabaje.
JButton JComboBox JCheckBox JLabel JList JRadioButton JPanel JFrame JTextArea JTextField
Proporciona componentes de presentación visual independientes de la plataforma en la que se trabaja. Swing es la evolución de AWT y mejora sus componentes para interactuar con el usuario.
Todas las prestaciones de AWT Componentes 100% Java de las versiones de los componentes de AWT Swing
Un rico conjunto de componentes de alto nivel (listas en árbol, paneles de pestañas, etc.) Un diseño Java puro, no depende de terceros. Look and feel intercambiable
Describe con tus propias palabras, cuál es el ámbito de aplicación de ambos paquetes. Incluye un ejemplo de código y la imagen de ejecución Considero que el ámbito de aplicación de AWT o Swing dependerá de que es lo que se pretenda obtener, es decir si se quiere rapidez sacrificando estética se deber ía optar por AWT, si en lugar de eso se requiere estética sacrificando un poco de rapidez se deberá optar por Swing. A continuación, expongo una serie de ventajas y desventajas de cada uno de ellos:
Ventajas Más rápido Más compatible con applets
AWT
Respeta el look’n’feel del sistema sobre el que se trabaja Más estético Swing
Mas prestaciones Se desarrollan más componentes
A continuación expongo un ejemplo con AWT: import java.awt.*; public class EjemploAWT extends Panel { EjemploAWT(){ setBackground(Color.BLACK); } public static void main(String args[]) { Frame f = new Frame("Ejemplo de uso de AWT"); EjemploAWT gp = new EjemploAWT(); f.add(gp); f.setLayout(new FlowLayout()); f.setSize(600, 200); f.add(new Button("Pruebame!"));
Desventajas No es estético Menos prestaciones Descontinuado
Es más lento
f.add(new Label("Programación Orientada a Objetos")); f.add(new TextField()); CheckboxGroup cbg = new CheckboxGroup(); f.add(new Checkbox("Opción 1", cbg, true)); f.add(new Checkbox("Opción 2", cbg, true)); f.add(new Checkbox("Opción 3", cbg, false)); f.add(new Checkbox("Opción 4", cbg, false)); List list = new List(3, false); list.add("Semestre 1"); list.add("Semestre 2"); f.add(list); Choice chooser = new Choice(); chooser.add("POO 1"); chooser.add("POO 2"); chooser.add("POO 3"); f.add(chooser); f.add(new Scrollbar()); f.setLocationRelativeTo(null); f.setSize(800, 300); f.setVisible(true); } }
Ejemplo con Swing: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JTextField; public class EjemploSWING extends JFrame implements ActionListener { private JLabel texto; private JTextField caja; private JButton boton;
public EjemploSWING() { super(); configurarVentana(); inicializarComponentes(); } private void configurarVentana() { this.setTitle("Ejemplo SWING"); this.setSize(350, 210); this.setLocationRelativeTo(null); this.setLayout(null); this.setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } private void inicializarComponentes() { texto = new JLabel(); caja = new JTextField(); boton = new JButton(); texto.setText("Inserta tu nombre: "); texto.setBounds(30, 50, 180, 25); caja.setBounds(150, 50, 150, 25); boton.setText("Mostrar Saludo"); boton.setBounds(70, 100, 200, 30); boton.addActionListener(this); this.add(texto); this.add(caja);
this.add(boton); } @Override public void actionPerformed(ActionEvent e) { String nombre = caja.getText(); JOptionPane.showMessageDialog(this, "Hola " + nombre + "."); } public static void main(String[] args) { EjemploSWING V = new EjemploSWING(); V.setVisible(true); }
}
Bibliografía: Java AWT. Recuperado de: http://lineadecodigo.com/tag/java-awt/ Java Swing. Recuperado de: http://lineadecodigo.com/tag/java-swing/ El kit gráfico: AWT. Recuperado de: https://users.dcc.uchile.cl/~lmateu/Java/Apuntes/awt.htm Aplicaciones Web, documento recuperado de: https://www.fdi.ucm.es/profesor/jpavon/web/24-JavaScript.pdf
Bell, Douglas. & Parr, Mike. (2008). Java para Estudiantes. México: Pearson. Componentes Java Swing. Recuperado de: http://codejavu.blogspot.mx/2013/09/componentes-java-swing.html Interfaces gráficas de usuario. Recuperado de: http://www.fdi.ucm.es/profesor/jpavon/poo/2.11.gui.pdf