practica 01
TRANSCRIPT
INSTITUTO TECNOLÓGICO DE VERACRUZINGENIERÍA EN SISTEMAS COMPUTACIONALES
TÓPICOS SELECTOS DE PROGRAMACIÓN
PRÁCTICAS DE LABORATORIO
PRÁCTICA No. 1
INTERFAZ GRÁFICA CON SWING
OBJETIVO: El alumno utilizará los componentes gráficos de Java de Swing para el desarrollo de una interfaz gráfica.
MATERIAL: Computadora con el J2SDK instalado.
PROCEDIMIENTO:Ejecute las instrucciones señaladas a continuación, responda las preguntas y documente los resultados de esta práctica.
I.- Realice la creación de un proyecto denominado Practica01 y complete el método main():
package practica01;
import javax.swing.*;
public class Practica01 {
public static void main(String[] args) { JFrame f = new JFrame("Uso de componentes Swing"); f.setSize(600,500); f.setLocation(100,100); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.add(new PanelConVistas()); f.setVisible(true); }}
Conteste las siguientes preguntas:
1.- ¿En que parte de la memoria se almacena la variable f?¿Qué almacena esa variable?
2.- ¿Cuál es la función del operador new?¿Donde se almacena el objeto creado?¿Cuál es la función del constructor de JFrame?
3.- ¿Qué configuramos con el método setDefaultCloseOperation()?¿Cuál es la función del método add()?
_________________________________________________________________________ Tópicos Selectos de ProgramaciónRafael Rivera López.Agosto-Diciembre de 2009
Práctica No. 1: Interfaz Gráfica con Swing
4.- ¿Cuál es el administrador de diseño que está asociado a un objeto JFrame? Dibuje un esquema de las áreas que define el administador de diseño asociado a un JFrame.
II.- Capture la clase PanelConVista.
package practica01;
import javax.swing.*;import java.awt.*;import javax.swing.border.*;
class PanelConVistas extends JPanel {
private JPanel[] paneles; // Paneles para vistas
public PanelConVistas() { paneles = new JPanel[4]; addComponentes(); }
public final void addComponentes() { setLayout(new BorderLayout()); addPanelConEtiquetas(); addPanelConBotones(); }
public void addPanelConEtiquetas() { JTabbedPane pVista = new JTabbedPane(); String[] etiqueta = {"Botones", "Barras", "Listas", "Tabla"}; String[] mensajes = {"Panel con Botones", "Barras de control", "Lista de Iconos", "Una tabla"}; for (int i = 0; i < 4; i++) { paneles[i] = new JPanel(); paneles[i].setBackground(Color.lightGray); paneles[i].setBorder(new TitledBorder(mensajes[i])); pVista.addTab(etiqueta[i], null, paneles[i], mensajes[i]); } add(pVista, "Center"); }}
Compile y ejecute el programa Practica01.5.- ¿Cuál es la función del objeto JTabbedPane?6.- Al adicionar un contenedor (panel) al objeto pVista con el método addTab()), ¿qué
parámetros se deben indicar?7.- El método setBorder() permite incluir un borde al contenedor. ¿Cuáles son los posibles
bordes que se pueden colocar en un contenedor?8.- Modifique el método addPanelConEtiquetas() para que cada panel tenga diferente color
y diferente borde. Imprima la nueva versión del método.
_________________________________________________________________________ Tópicos Avanzados de ProgramaciónRafael Rivera LópezAgosto-Diciembre de 2013
Práctica No. 1: Interfaz Gráfica con Swing
III.- Modifique la clase PanelConVistas con lo siguiente:
public void addPanelConBotones() { JButton b1 = new JButton("Imprimir"); String p = "/imagenes/print-icon.png"; b1.setIcon(new ImageIcon(getClass().getResource(p))); JToggleButton b2 = new JToggleButton("Otro botón"); paneles[0].add(b1); paneles[0].add(b2); }
Para guardar las imagenes de un proyecto de forma ordenada, se crea una carpeta dentro de la carpeta src creada por NetBeans (en este caso el nombre de la carpeta es imagenes). Esta carpeta estará a la misma altura del paquete que contiene las clases del proyecto, como se observa en la figura (El lado izquierdo es la vista de Proyectos, y el lado derecho la vista de Archivos). Los iconos se pueden obtener en http://www.iconarchive.com.
9.- ¿Cuál es la función del constructor ImageIcon?10.- ¿Cuál es la función del método getClass().getResource()? 11.-¿Cuál es la diferencia entre un JButton y un JToggleButton? (Observación: La imagen
a incluir puede ser cualquiera).
Incluya el llamado al método addPanelConBotones() al final del constructor de la clase instanciable. Compile la clase instanciable y ejecute la clase aplicación. Realice cambios al panel[0] para cambiar su apariencia (cambiar el administrador de diseño, por ejemplo).
12.- Imprima la versión final del método addPanelConBotones().13.- Imprima la ventana creada por el método.
IV.- Modifique la clase PanelConVistas con lo siguiente:
_________________________________________________________________________ Tópicos Avanzados de ProgramaciónRafael Rivera LópezAgosto-Diciembre de 2013
Práctica No. 1: Interfaz Gráfica con Swing
public void addPanelConBarras(){ JSlider s1 = new JSlider(JSlider.VERTICAL, 0, 100, 50); s1.setMajorTickSpacing(10); s1.setMinorTickSpacing(5); s1.setPaintTicks(true);
JSlider s2 = new JSlider(JSlider.HORIZONTAL, 0, 100, 50); s2.setMajorTickSpacing(10); s2.setMinorTickSpacing(5); s2.setPaintTicks(true); JPanel panelSuperior = new JPanel(); JPanel panelInferior = new JPanel();
paneles[1].setLayout(new GridLayout(2,1)); paneles[1].add(panelSuperior); paneles[1].add(panelInferior);
panelSuperior.add(new JLabel("Barra deslizante vertical")); panelSuperior.add(s1); panelInferior.add(new JLabel("Barra deslizante horizontal")); panelInferior.add(s2); }
14.- ¿Cuál es el significado de los argumentos del constructor JSlider?15.- ¿Cuál es la función del método setMajorTickSpacing(10)?16.- ¿Cuál es la función del método setMinorTickSpacing(5)?17.- ¿Cuál es la función del método setPaintTicks(true)?
Incluya el llamado al método addPanelConBarras() al final del constructor de la clase instanciable. Compile el programa y corra la clase aplicación.
18.- Imprima la versión final del método addPanelConBotones().19.- Imprima la ventana creada por el método.
V.- Modifique la clase PanelConVistas con lo siguiente:
public void addPanelConListas() { String[] nombres = {"/imagenes/Leaf-icon.png","/imagenes/mint-leaf-icon.png", "/imagenes/tea-plant-leaf-icon.png"}; ImageIcon[] imagenes = { new ImageIcon(getClass().getResource(nombres[0])), new ImageIcon(getClass().getResource(nombres[1])), new ImageIcon(getClass().getResource(nombres[2]))}; JList lista1 = new JList(imagenes); paneles[2].add(lista1); }
_________________________________________________________________________ Tópicos Avanzados de ProgramaciónRafael Rivera LópezAgosto-Diciembre de 2013
Práctica No. 1: Interfaz Gráfica con Swing
20.- ¿Para que sirve un objeto JList?Incluya el llamado al método addPanelConListas() al final del constructor de la clase instanciable. Compile el programa y corra la clase aplicación.21.- Imprima la ventana creada por el método.
VI.- Modifique el programa PanelConVistas con lo siguiente:
public void addPanelConTablas(){ String titulos[] = {"Num. de Control","Nombre","Carrera"}; Object celdas[][] = { titulos, {"13023456","Pedro Perez", "Sistemas"}, {"13021243","Luisa López", "Industrial"}, {"13022312","Carlos Cruz", "Mecanica"}, }; JTable tabla1 = new JTable(celdas,titulos); paneles[3].add(tabla1); }
Incluya el llamado al método addPanelConTablas() al final del constructor de la clase instanciable. Compile el programa y corra la clase aplicación.22.- Imprima la ventana creada por el método.23.- Modifique el administrador de diseño para que la tabla ocupe todo el panel. Imprima la ventana creada por el método.24.- Imprima el código completo de la clase instanciable.25.- Describa las ventajas del paquete javax.swing sobre el paquete java.awt.
_________________________________________________________________________ Tópicos Avanzados de ProgramaciónRafael Rivera LópezAgosto-Diciembre de 2013