4
PRACTICA I UNIDAD 2 MANEJO DE FRAMES Objetivo      Diseñar y crear frames para interfaces gráficas de usuarios mediante la biblioteca Swing de Java. La biblioteca swing de java, se encuentra en el paquete de líbrerías abstractas de ventana: java.awt , para el manejo de eventos de la misma se requiere del paquete java.awt.event , la cual contiene os elementos para manejar el cierre, minimización y demás métodos de un frame. PASO 1) Escriba el siguiente código: MyInternalFrame.java import javax.swing.JInternalFrame; import java.awt.event.*; import java.awt.*; public class MyInternalFrame extends JInternalFrame {     static int openFrameCount = 0;     static final int xOffset = 30, yOffset = 30;     public MyInternalFrame() {         super("Document #" + (++openFrameCount),               true, //redimensionable               true, //se puede cerrar               true, //maximizable               true);//iconizable         //...Crea la GUI y colocala en la ventana...         //...Luego configura el tamaño de la ventana...         setSize(300,300);         //Configura la ubicación de la ventana.         setLocation(xOffset*openFrameCount, yOffset*openFrameCount);     } } Esto permite tener un constructor que se puede redimensionar, además de ubicar en la ventana principal. Con esto se puede proceder para llevar a cabo la siguiente clase:

Practica 1 u2

Embed Size (px)

Citation preview

Page 1: Practica 1 u2

PRACTICA IUNIDAD 2

MANEJO DE FRAMES

Objetivo     Diseñar y crear frames para interfaces gráficas de usuarios mediante la biblioteca Swing de Java.

La biblioteca swing de java, se encuentra en el paquete de líbrerías abstractas de ventana: java.awt , para el manejo de eventos de la misma se requiere del paquete java.awt.event , la cual contiene os elementos para manejar el cierre, minimización y demás métodos de un frame.

PASO 1)Escriba el siguiente código:

MyInternalFrame.java

import javax.swing.JInternalFrame;import java.awt.event.*;import java.awt.*;

public class MyInternalFrame extends JInternalFrame {    static int openFrameCount = 0;    static final int xOffset = 30, yOffset = 30;

    public MyInternalFrame() {        super("Document #" + (++openFrameCount),              true, //redimensionable              true, //se puede cerrar              true, //maximizable              true);//iconizable

        //...Crea la GUI y colocala en la ventana...

        //...Luego configura el tamaño de la ventana...        setSize(300,300);

        //Configura la ubicación de la ventana.        setLocation(xOffset*openFrameCount, yOffset*openFrameCount);    }}

Esto  permite   tener  un  constructor  que  se  puede   redimensionar,   además  de  ubicar   en   la ventana principal. Con esto se puede proceder para llevar a cabo la siguiente clase:

Page 2: Practica 1 u2

InternalFrameDemo.java

import javax.swing.JInternalFrame;import javax.swing.JDesktopPane;import javax.swing.JMenu;import javax.swing.JMenuItem;import javax.swing.JMenuBar;import javax.swing.JFrame;import javax.swing.KeyStroke;

import java.awt.event.*;import java.awt.*;

public class InternalFrameDemo extends JFrame implements ActionListener {    JDesktopPane desktop;

    public InternalFrameDemo() {        super("InternalFrameDemo");

        //Identar la ventana grande 50 pixels de cada lado de la pantalla.

        int inset = 50;        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();        setBounds(inset, inset,                  screenSize.width  ­ inset*2,                  screenSize.height ­ inset*2);

        //Configurar la GUI.        desktop = new JDesktopPane(); //Panel de capas especializado        createFrame(); //crea primerot "la ventana"        setContentPane(desktop);        setJMenuBar(createMenuBar());

        //Hacer el dragging un poco más rápido pero un poco mal terminado.        desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);    }

    protected JMenuBar createMenuBar() {        JMenuBar menuBar = new JMenuBar();

        //Configura el menu solitario.        JMenu menu = new JMenu("Document");        menu.setMnemonic(KeyEvent.VK_D);        menuBar.add(menu);

        //Configura el primer menu.        JMenuItem menuItem = new JMenuItem("New");        menuItem.setMnemonic(KeyEvent.VK_N);

Page 3: Practica 1 u2

        menuItem.setAccelerator(KeyStroke.getKeyStroke(                KeyEvent.VK_N, ActionEvent.ALT_MASK));        menuItem.setActionCommand("new");        menuItem.addActionListener(this);        menu.add(menuItem);

        //configura el segundo menu.        menuItem = new JMenuItem("Quit");        menuItem.setMnemonic(KeyEvent.VK_Q);        menuItem.setAccelerator(KeyStroke.getKeyStroke(                KeyEvent.VK_Q, ActionEvent.ALT_MASK));        menuItem.setActionCommand("quit");        menuItem.addActionListener(this);        menu.add(menuItem);

        return menuBar;    }

    //Toma acciones acorde al menu.    public void actionPerformed(ActionEvent e) {        if ("new".equals(e.getActionCommand())) { //nuevo            createFrame();        } else { //quit            quit();        }    }

    //Create a new internal frame.    protected void createFrame() {        MyInternalFrame frame = new MyInternalFrame();        frame.setVisible(true); //necesario al 1.3        desktop.add(frame);        try {            frame.setSelected(true);        } catch (java.beans.PropertyVetoException e) {}    }

    //Salir de la aplicación.    protected void quit() {        System.exit(0);    }

    /**     * Crea el GUI y muestrálo. Para thread seguros,     * este método deber ser invocado desde el  manejo de evento de thread.     * event­dispatching thread.     */    private static void createAndShowGUI() {        //Asegurarse de que se tenga buena decoración.        JFrame.setDefaultLookAndFeelDecorated(true);

Page 4: Practica 1 u2

        //Crea y configura la ventana.        InternalFrameDemo frame = new InternalFrameDemo();        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Despliega la pantalla.        frame.setVisible(true);    }

    public static void main(String[] args) {        //Calendariza una tarea para el thread event­dispatching :        //crea y muestra el GUI de la aplicación.        javax.swing.SwingUtilities.invokeLater(new Runnable() {            public void run() {                createAndShowGUI();            }        });    }}

Debe tener una ventana del siguiente tipo:

PASO 2)

Genere otro menu que cree también una ventana interna.Al primer menu que genere una ventana escriba en la parte media VENTANA 1, al menu 

que crea la segunda ventana, haga que escriba en la parte media ventana 2.Una vez terminado, indique que termino para su revisión.

­­­ FIN PRÁCTICA I ­­­