Upload
angel-garcia
View
29
Download
2
Embed Size (px)
Citation preview
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:
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);
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. * eventdispatching thread. */ private static void createAndShowGUI() { //Asegurarse de que se tenga buena decoración. JFrame.setDefaultLookAndFeelDecorated(true);
//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 eventdispatching : //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