practica 01

7
INSTITUTO TECNOLÓGICO DE VERACRUZ INGENIERÍ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: _____________________________________________________________ ____________ Tópicos Selectos de Programación Rafael Rivera López. Agosto-Diciembre de 2009

Upload: robert-martinez

Post on 28-Oct-2015

28 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Practica 01

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

Page 2: Practica 01

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

Page 3: Practica 01

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

Page 4: Practica 01

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

Page 5: Practica 01

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