Java Swing

32
Analista Programador INGENIA-CAFI 1 JAVA DEVELOPER MODULO 1 Sesión 5: Fundamentos del Lenguaje Tutor: Gelber C. Uscuchagua Flores // EJEMPLO 1 // Crear una clase Java que permita crear un Frame de dimensiones 300x250 // Archivo: PrimerFrame.java import java.awt.Frame; public class Primerframe { public static void main(String[] args) { Frame f = new Frame("Primer Frame"); f.resize(300,250); f.move(60,50); f.show(); } } // EJEMPLO 2 // Crear una clase que se extienda de la clase Frame y que dibuje una cuadricula en la //ventana o frame. // Archivo: Cuadricula.java import java.awt.*; public class Cuadricula extends Frame { public Cuadricula(String nombre) { super(nombre); } public Cuadricula() { super(); } public void paint(Graphics g) { /* objeto Dimension tiene solo dos miembros width y height(ancho y alto) */ Dimension d = size(); int gridx = d.width/3; int gridy = d.height/3; for(int x=1;x<3;x++){ for(int y=1;y<3;y++){

description

java_eclipse

Transcript of Java Swing

Page 1: Java Swing

Analista Programador INGENIA-CAFI

1

JAVA DEVELOPER – MODULO 1

Sesión 5: Fundamentos del Lenguaje

Tutor: Gelber C. Uscuchagua Flores

// EJEMPLO 1 // Crear una clase Java que permita crear un Frame de dimensiones 300x250 // Archivo: PrimerFrame.java import java.awt.Frame; public class Primerframe { public static void main(String[] args) { Frame f = new Frame("Primer Frame"); f.resize(300,250); f.move(60,50); f.show(); } } // EJEMPLO 2 // Crear una clase que se extienda de la clase Frame y que dibuje una cuadricula en la //ventana o frame. // Archivo: Cuadricula.java import java.awt.*; public class Cuadricula extends Frame { public Cuadricula(String nombre) { super(nombre); } public Cuadricula() { super(); } public void paint(Graphics g) { /* objeto Dimension tiene solo dos miembros width y height(ancho y alto) */ Dimension d = size(); int gridx = d.width/3; int gridy = d.height/3; for(int x=1;x<3;x++){ for(int y=1;y<3;y++){

Page 2: Java Swing

Analista Programador INGENIA-CAFI

2

g.drawLine(gridx*x,0,gridx*x,d.height); g.drawLine(0,gridy*y,d.width,gridy*y);

}

} } } // Crear una clase que utilice la clase extendida para crear una ventana // Archivo: uso_Cuadricula.java import java.awt.*; public class uso_Cuadricula { public static void main(String[] args) { Frame f = new Cuadricula("Prueba"); f.resize(350,250); f.move(60, 75); f.show(); } } // EJEMPLO 3 //Crear una clase que contenga un Frame con dos botones (Aceptar y Cancelar).. // Archivo: Botones0.java import java.awt.*; public class Botones0 { public static void main(String[] arg) { Button bt_aceptar; Button bt_cancelar; Frame ventana = new Frame("Botones"); ventana.setLayout(null); bt_aceptar = new Button("Aceptar"); bt_cancelar = new Button("Cancelar"); ventana.add(bt_aceptar);

Page 3: Java Swing

Analista Programador INGENIA-CAFI

3

ventana.add(bt_cancelar); // shape es la forma de los botones x e y en la esquina del frame

bt_aceptar.reshape(10, 30, 75, 45); bt_cancelar.reshape(10, 85, 75, 45); ventana.reshape(60, 75, 250, 200); ventana.show(); } } // EJEMPLO 4 //Crear una clase que contenga un Frame y que maneje un evento para cerrar la ventana al //hacer click en [x] // Archivo: CerrandoVentana.java import java.awt.*; public class CerrandoVentana { public static void main(String[] args) { Frame f = new Frame("Ejercicio de Evento") { public boolean handleEvent(Event evt) { if (evt.id == Event.WINDOW_DESTROY) System.exit(0); return true; } }; f.show(); } } // EJEMPLO 5 //Crear una clase extendida de Canvas que personalice los eventos de un Button. //Crear una clase extendida de Frame que contenga tres botones personalizados //(Objetos relacionados al botón propio). // Archivo: BotonPropio.java import java.awt.*; public class BotonPropio extends Canvas { private boolean cursorAdentro; private boolean cursorPresionado;

Page 4: Java Swing

Analista Programador INGENIA-CAFI

4

public boolean mouseEnter(Event evt, int x, int y) { cursorAdentro = true; repaint(); return true; } public boolean mouseExit(Event evt, int x, int y) { cursorAdentro = false; repaint(); return true; } public boolean mouseDown(Event evt, int x, int y) { cursorPresionado = true; repaint(); return true; } public boolean mouseUp(Event evt, int x, int y) { cursorPresionado = false; repaint(); if (cursorAdentro) { Event e = new Event(this, Event.ACTION_EVENT, null); deliverEvent(e); } return false; } public void paint(Graphics g) { Color c = getBackground(); if (cursorAdentro && cursorPresionado) c = getForeground(); g.setColor(c); Dimension dim = size(); g.fillRect(0, 0, dim.width, dim.height); } }

//Crear una clase extendida de Frame que contenga tres botones personalizados //(Objetos relacionados al botón propio). // Archivo: uso_BotonPropio.java import java.awt.*; public class uso_BotonPropio extends Frame {

Page 5: Java Swing

Analista Programador INGENIA-CAFI

5

public static void main(String[] args) { Frame f = new uso_BotonPropio();

} BotonPropio b1, b2, b3, b4; public uso_BotonPropio() { super("Ejercicio BotonPropio"); setLayout(null); b1 = new BotonPropio(); b1.setBackground(Color.black); b1.setForeground(Color.white); b2 = new BotonPropio(); b2.setBackground(Color.red); b2.setForeground(Color.green); b3 = new BotonPropio(); b3.setBackground(Color.blue); b3.setForeground(Color.orange); b4 = new BotonPropio(); b4.setBackground(Color.yellow); b4.setForeground(Color.pink); resize(400, 400); b1.reshape(0, 0, 200, 200); b2.reshape(200, 0, 200, 200); b3.reshape(0, 200, 200, 200); b4.reshape(200, 200, 200, 200); add(b1); add(b2); add(b3); add(b4); show(); } public boolean action(Event evt, Object arg) { if(evt.target == b1) System.out.println("B1 fue presionado!"); if(evt.target == b2) System.out.println("B2 fue presionado!"); if(evt.target == b3) System.out.println("B3 fue presionado!"); if(evt.target == b4)

Page 6: Java Swing

Analista Programador INGENIA-CAFI

6

System.out.println("B4 fue presionado!"); return true; } } // EJEMPLO 6 //Crear una clase que contenga un Frame y que maneje , por medio de un Listener, un //evento para cerrar la ventana al hacer click en [x] // Archivo: ListenCerrando.java import java.awt.*; import java.awt.event.*; public class ListenCerrando { public static void main(String[] args) { WindowListener wl = new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } public void windowOpened(WindowEvent e) { } public void windowClosed(WindowEvent e) { } public void windowIconified(WindowEvent e) { } public void windowDeiconified(WindowEvent e) { } public void windowActivated(WindowEvent e) { } public void windowDeactivated(WindowEvent e) { } }; Frame closingFrame = new Frame("Closing Frame Test"); closingFrame.addWindowListener(wl); closingFrame.setBounds(60, 75, 250, 400); closingFrame.setVisible(true); } } // EJEMPLO 7 //Dibujar una Texto en la posición 50,50. //Java Basico Ingenia // Archivo: Ventana1.java import java.awt.*; public class Ventana1 extends Frame { public Ventana1(String nombre) { super(nombre);

Page 7: Java Swing

Analista Programador INGENIA-CAFI

7

} public Ventana1() { super(); } public void paint(Graphics g) { Dimension d = size(); g.setColor(new Color(0,0,0)); g.drawString("Java Basico Ingenia", 50, 50); Font f = g.getFont(); FontMetrics fm = g.getFontMetrics(f); System.out.println("Altura total: "+fm.getHeight()); System.out.println("Espacio: "+fm.getLeading()); System.out.println("Alto: "+fm.getAscent()); System.out.println("Bajo: "+fm.getDescent()); } }

// Archivo: DibujandoTexto.java import java.awt.*; public class DibujandoTexto { public static void main(String[] arg) { Ventana1 v1 = new Ventana1("Dibujando Texto"); v1.setSize(450, 200); v1.setVisible(true); } } // EJEMPLO 8 //Crear un Frame que dibuje dos textos con diferente formato: // Java Basico // Ingenia // Archivo: Ventana2.java import java.awt.*; public class Ventana2 extends Frame { public Ventana2(String nombre) { super(nombre); }

Page 8: Java Swing

Analista Programador INGENIA-CAFI

8

public Ventana2() { super(); } public void paint(Graphics g) { Dimension d = size(); g.setColor(new Color(0,0,0)); g.drawString("Dibujando Fuentes", 50, 50); g.setFont(new Font("Monospaced", Font.BOLD, 36)); g.drawString("Dibujando Fuentes", 100, 100); } }

// Archivo: DibujandoTexto.java import java.awt.*; public class DibujandoFuente { public static void main(String[] arg) { Ventana2 v2 = new Ventana2("Dibujando Fuente"); v2.setSize(600, 200); v2.setVisible(true); } } // EJEMPLO 9 //Dibujar una Imagen que tenga como contenido el texto “Java Basico Ingenia” con una línea //debajo (simulando un estilo subrayado). // Archivo: Ventana3.java import java.awt.*; public class Ventana3 extends Frame { public Ventana3(String nombre) { super(nombre); } public Ventana3() { super(); } public void paint(Graphics g) {

Page 9: Java Swing

Analista Programador INGENIA-CAFI

9

Dimension d = getSize(); Image i = createImage(d.width,d.height); Graphics gp = i.getGraphics(); gp.drawString("Java Basico - Ingenia", 50, 50); gp.drawLine(50,55,170,55); gp.dispose(); g.drawImage(i,0,0,null); } }

// Archivo: DibujandoMemoria.java public class DibujandoMemoria { public static void main(String[] args) { Ventana3 v3 = new Ventana3("Dibujando Memoria"); v3.setSize(250, 200); v3.setVisible(true); } } // EJEMPLO 10 //Cargar una imagen del disco y dibujarla en la aplicación. // Archivo: Ventana4.java import java.awt.*; public class Ventana4 extends Frame { Image img = Toolkit.getDefaultToolkit().getImage("D:\\ruta de la figura\\imagen.gif"); public Ventana4(String nombre) { super(nombre); } public Ventana4() { super(); } public void repaint(Graphics g) { paint(g); } public void paint(Graphics g) { g.drawImage(img,50,50,100,100,this); } }

Page 10: Java Swing

Analista Programador INGENIA-CAFI

10

// EJEMPLO 11 //Crear un applet que imprima un mensaje de texto “Primer Applet”. // Archivo: PrimerApplet.java import java.applet.*; import java.awt.*; public class PrimerApplet extends Applet { public void paint(Graphics g) { g.drawString("Primer Applet",50,50); } } // EJEMPLO 12 //Utiliza las capacidades aprendidas para crear un Reloj en un Applet. // Archivo: Reloj.java import java.awt.*; import java.applet.*; import java.util.Date; public class Reloj extends Applet implements Runnable { Thread animador; String horactual=""; Date date; boolean running = true; public void init() { animador = new Thread(this); animador.start(); } public void destroy() { running = false; animador = null; } public void run() {

while (running) { date = new Date(); String hora = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();

Page 11: Java Swing

Analista Programador INGENIA-CAFI

11

horactual=hora; try { animador.sleep(1000); } catch (Exception e) { } repaint(); } } public void update(Graphics g) { paint(g); } public void paint(Graphics g) { Dimension d = getSize(); g.setColor(Color.WHITE); g.fillRect(0,0,d.width,d.height); g.setColor(Color.BLACK); g.drawString(horactual,50,50); } } // EJEMPLO 13 // Crear un Frame que contenga cinco (5) botones organizados usando FlowLayout(). // Archivo: PrimerLayout.java import java.awt.*; public class PrimerLayout { public static void main(String[] args) { Frame f = new Frame("Ejemplo de Layout"); f.setLayout(new FlowLayout()); f.add(new Button("Boton 1")); f.add(new Button("Boton 2")); f.add(new Button("Boton 3")); f.add(new Button("Boton 4")); f.add(new Button("Boton 5")); f.resize(250, 200); f.show(); } }

Page 12: Java Swing

Analista Programador INGENIA-CAFI

12

// EJEMPLO 14 //Crear un JFrame con un tamaño 300 x 100, con titulo y que procese su evento de cerrar //ventana. // Archivo: JVentana.java import javax.swing.*; import java.awt.event.*; public class JVentana extends JFrame { public static void main( String args[] ) { // crea un objeto de tipo JVentana JVentana ventana = new JVentana(); procesaEventos eventos = new procesaEventos(); // Le agrega un OYENTE // un listener es un objeto necesario para procesar // los eventos que ocurren en el objeto sobre el cual es llamado ventana.addWindowListener( eventos ); // Le colocamos un título ventana.setTitle( "Mi primera Ventana" ); // Le ponemos un tamaño ventana.setSize( 300, 100 ); // mostramos la ventana ventana.show(); } } // Esta clase permite el procesamiento de eventos de // la ventana, solo respondemos al cierre de la misma // los otros eventos no se sobrecargan y se procesan // por defecto class procesaEventos extends WindowAdapter { // reacciona ante el intento de cierre de // la aplicacion public void windowClosing( WindowEvent e ) { // termina la aplicación System.exit(0); } }

Page 13: Java Swing

Analista Programador INGENIA-CAFI

13

// EJEMPLO 15 //Hacer uso de los contenedores y componentes para crear una figura circular e interactuar //con su color, tamaño y posición. // Archivo: VentanaDibujo.java import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*; public class VentanaDibujo extends JFrame { //COMPONENTES DE LA VENTANA private JButton btnLimpiar; private JLabel lblCentro; private JPanel panBotones; private JLabel lblFigura; private JComboBox cboFigura; private JPanel panSuperior; private JPanel panControles; private JTextField txtRadio; private JTextField txtCY; private JTextField txtCX; private JLabel lblRadio; private JComboBox cboColor; private JPanel panPrincipal; private JLabel lblColor; private JButton btnSalir; private JButton btnDibujar; private JPanel panDibujo; //OBJETOS DE DIBUJO private Ellipse2D.Double circulo; //CONSTRUCTOR public VentanaDibujo() { setSize(430,300); initComponents(); } //INICIALIZA LOS COMPONENTES EN LA VENTANA private void initComponents() { panPrincipal = new JPanel(); panSuperior = new JPanel(); lblFigura = new JLabel(); lblRadio = new JLabel(); cboFigura = new JComboBox(); txtRadio = new JTextField(); panControles = new JPanel(); lblColor = new JLabel();

Page 14: Java Swing

Analista Programador INGENIA-CAFI

14

lblCentro = new JLabel(); txtCX = new JTextField(); txtCY = new JTextField(); cboColor = new JComboBox(); panBotones = new JPanel(); btnDibujar = new JButton(); btnLimpiar = new JButton(); btnSalir = new JButton(); //LA VENTANA getContentPane().setLayout(new GridLayout(1, 2)); setTitle("Ventana de Gráficos"); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { exitForm(evt); } }); //PANEL PRINCIPAL panPrincipal.setLayout(new GridLayout(3, 1)); //SUB PANEL SUPERIOR panSuperior.setLayout(null); panSuperior.setBackground(new java.awt.Color(255, 255, 204)); lblFigura.setText("Figura"); panSuperior.add(lblFigura); lblFigura.setBounds(30, 40, 80, 20); lblRadio.setText("Radio"); panSuperior.add(lblRadio); lblRadio.setBounds(30, 70, 80, 20); cboFigura.setBackground(new java.awt.Color(255, 255, 204)); cboFigura.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Circulo" })); panSuperior.add(cboFigura); cboFigura.setBounds(80, 40, 90, 20); txtRadio.setText("20.0"); panSuperior.add(txtRadio); txtRadio.setBounds(80, 70, 50, 20); panPrincipal.add(panSuperior); //SUB PANEL De CONTROLES panControles.setLayout(null); panControles.setBackground(new Color(255, 255, 204)); lblColor.setText("Color"); panControles.add(lblColor); lblColor.setBounds(30, 10, 80, 20); lblCentro.setText("Centro"); panControles.add(lblCentro); lblCentro.setBounds(30, 40, 80, 20); txtCX.setText("0.0"); panControles.add(txtCX); txtCX.setBounds(80, 40, 40, 20); txtCY.setText("0.0");

Page 15: Java Swing

Analista Programador INGENIA-CAFI

15

panControles.add(txtCY); txtCY.setBounds(130, 40, 40, 20); cboColor.setBackground(new Color(255, 255, 204)); cboColor.setModel(new DefaultComboBoxModel(new String[] { "Rojo", "Verde", "Azul" })); cboColor.setSelectedIndex(0); panControles.add(cboColor); cboColor.setBounds(80, 10, 90, 20); panPrincipal.add(panControles); //SUB PANEL DEL BOTONES panBotones.setLayout(new FlowLayout(java.awt.FlowLayout.CENTER, 5, 10)); panBotones.setBackground(new Color(255, 255, 204)); btnDibujar.setText("Dibujar"); btnDibujar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnDibujarActionPerformed(evt); } }); panBotones.add(btnDibujar); btnLimpiar.setText("Limpiar"); btnLimpiar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnLimpiarActionPerformed(evt); } }); panBotones.add(btnLimpiar); btnSalir.setText("Salir"); btnSalir.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnSalirActionPerformed(evt); } }); panBotones.add(btnSalir); panPrincipal.add(panBotones); getContentPane().add(panPrincipal); //PANEL DE DIBUJO panDibujo = new JPanel() { public void paintComponent(Graphics g) { Graphics2D g2d = (Graphics2D)g; g2d.clearRect(0,0,getWidth(), getHeight()); //Crea el objeto a Dibujar circulo = new Ellipse2D.Double(100.0 + Double.parseDouble( txtCX.getText() ), 100.0 + Double.parseDouble( txtCY.getText() ), Double.parseDouble( txtRadio.getText() ),

Page 16: Java Swing

Analista Programador INGENIA-CAFI

16

Double.parseDouble( txtRadio.getText() )); g2d.setBackground( Color.white ); //Establece el color de relleno if (cboColor.getSelectedIndex() == 0) g2d.setPaint( Color.red ); else if (cboColor.getSelectedIndex() == 1) g2d.setPaint( Color.green ); else if (cboColor.getSelectedIndex() == 2) g2d.setPaint( Color.blue ); g2d.fill( circulo ); } }; panDibujo.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 2, true)); getContentPane().add(panDibujo); } private void btnDibujarActionPerformed(ActionEvent evt) { //Redibuja el componente panDibujo.repaint(); } private void btnLimpiarActionPerformed(ActionEvent evt) { //Valor de Inicio txtRadio.setText("20.0"); txtCX.setText("0.0"); txtCY.setText("0.0"); cboColor.setSelectedIndex(2); } private void btnSalirActionPerformed(ActionEvent evt) { WindowEvent we = new java.awt.event.WindowEvent(this,0); exitForm(we); } private void exitForm(WindowEvent evt) { System.exit(0); } public static void main(String args[]) { new VentanaDibujo().show(); } }

Page 17: Java Swing

Analista Programador INGENIA-CAFI

17

// EJEMPLO 16 //Crear una Ventana Login que nos muestre un componente JOptionPane, en dos casos, //uno si ha sido validado el usuario y la contraseña, y otro sino ha sido validado. // Archivo: VentanaLogin.java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class VentanaLogin extends JFrame { //Controles de ventana private JTextField txtUsuario; private JPasswordField txtPassword; private JLabel lblUsuario; private JLabel lblPassword; private JButton btnAceptar; private JButton btnCancelar; //Contenedores de componentes private JPanel panInferior; private JPanel panSuperior; public VentanaLogin() { initComponents(); } private void initComponents() { panSuperior = new JPanel(); lblUsuario = new JLabel(); txtUsuario = new JTextField(); lblPassword = new JLabel(); txtPassword = new JPasswordField(); panInferior = new JPanel(); btnAceptar = new JButton(); btnCancelar = new JButton(); //DISEÑO PARA LA VENTANA getContentPane().setLayout(new GridLayout(2, 2)); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { exitForm(evt); } }); //DISEÑO PANEL SUPERIOR panSuperior.setLayout(new GridLayout(2, 2, 0, 10)); panSuperior.setBackground(new Color(204, 204, 255));

Page 18: Java Swing

Analista Programador INGENIA-CAFI

18

lblUsuario.setText("Usuario"); lblPassword.setText("Contraseña"); panSuperior.add(lblUsuario); panSuperior.add(txtUsuario); panSuperior.add(lblPassword); panSuperior.add(txtPassword); getContentPane().add(panSuperior); //DISEÑO PANEL INFERIOR panInferior.setBackground(new Color(204, 204, 255)); btnAceptar.setText("Aceptar"); btnAceptar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnAceptarActionPerformed(evt); } }); btnCancelar.setText("Cancelar"); btnCancelar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnCancelarActionPerformed(evt); } }); panInferior.add(btnAceptar); panInferior.add(btnCancelar); getContentPane().add(panInferior); //DIMESIÓN DE LA VENTANA Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); setSize(new Dimension(310, 140)); setLocation((screenSize.width-276)/2,(screenSize.height-127)/2); } private void btnCancelarActionPerformed(ActionEvent evt) { //Ponemos a vacío txtUsuario.setText(""); txtPassword.setText(""); } private void btnAceptarActionPerformed(ActionEvent evt) { //Verificamos el usuario y password if ( txtUsuario.getText().equals("visita") && txtPassword.getText().equals("visita") ) { //Muestra mensaje, que el usuario esta OK. JOptionPane.showMessageDialog(this, "Bienvenido " + txtUsuario.getText() , "Inicio de Sesión", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(this, "El usuario o contraseña es incorrecto.",

Page 19: Java Swing

Analista Programador INGENIA-CAFI

19

"Error", JOptionPane.ERROR_MESSAGE); } } private void exitForm(WindowEvent evt) { System.exit(0); } //Método Principal public static void main( String args[] ) { // crea un objeto de tipo VentanaLogin VentanaLogin login = new VentanaLogin(); //Título de la ventana login.setTitle( "Inicio de Sesión" ); //Mostramos la ventana login.show(); } } // EJEMPLO 17 //Crear un JInternalFrame (frames internos) que tenga sus propiedades habilitadas y un // Archivo: FrameInterno.java import javax.swing.JInternalFrame; import java.awt.event.*; import java.awt.*; public class FrameInterno extends JInternalFrame { static int openFrameCount = 0; static final int xOffset = 30, yOffset = 30; public FrameInterno() { super("Documento Nro. " + (++openFrameCount), true, //resizable true, //closable true, //maximizable true);//iconifiable setSize(300,300); setLocation(xOffset*openFrameCount, yOffset*openFrameCount); setVisible(true); } }

Page 20: Java Swing

Analista Programador INGENIA-CAFI

20

//JFrame (frame contenedor) que contenga y pueda crear frames internos a traves de su //JMenu // Archivo: FrameContenedor.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 java.awt.event.*; import java.awt.*; public class FrameContenedor extends JFrame { JDesktopPane desktop; public FrameContenedor() { super("Frame Contenedor"); int inset = 50; Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); setBounds(inset, inset,screenSize.width - inset*2, screenSize.height-inset*2); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); desktop = new JDesktopPane(); createFrame(); setContentPane(desktop); setJMenuBar(createMenuBar()); } protected JMenuBar createMenuBar() { JMenuBar menuBar = new JMenuBar(); JMenu menu = new JMenu("Documento"); JMenuItem menuItemNuevo = new JMenuItem("Nuevo"); menuItemNuevo.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { createFrame(); } });

Page 21: Java Swing

Analista Programador INGENIA-CAFI

21

JMenuItem menuItemSalir = new JMenuItem("Salir"); menuItemSalir.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); menu.add(menuItemNuevo); menu.add(menuItemSalir); menuBar.add(menu); return menuBar; } protected void createFrame() { FrameInterno frameinterno = new FrameInterno(); desktop.add(frameinterno); try { frameinterno.setSelected(true); } catch (java.beans.PropertyVetoException e2) {} } public static void main(String[] args) { FrameContenedor frame = new FrameContenedor(); frame.setVisible(true); } }

Page 22: Java Swing

Analista Programador INGENIA-CAFI

22

import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*; public class VentanaDibujo extends JFrame { //COMPONENTES DE LA VENTANA private JButton btnLimpiar; private JLabel lblCentro; private JPanel panBotones; private JLabel lblFigura; private JComboBox cboFigura; private JPanel panSuperior; private JPanel panControles; private JTextField txtRadio; private JTextField txtCY; private JTextField txtCX; private JLabel lblRadio; private JComboBox cboColor; private JPanel panPrincipal; private JLabel lblColor; private JButton btnSalir; private JButton btnDibujar; private JPanel panDibujo; //OBJETOS DE DIBUJO private Ellipse2D.Double circulo; private Rectangle2D rectangulo; // private Arc2D.Double arco; //CONSTRUCTOR public VentanaDibujo() { setSize(430,300); initComponents(); } //INICIALIZA LOS COMPONENTES EN LA VENTANA private void initComponents() { panPrincipal = new JPanel(); panSuperior = new JPanel(); lblFigura = new JLabel(); lblRadio = new JLabel(); cboFigura = new JComboBox(); txtRadio = new JTextField(); panControles = new JPanel(); lblColor = new JLabel(); lblCentro = new JLabel(); txtCX = new JTextField(); txtCY = new JTextField();

Page 23: Java Swing

Analista Programador INGENIA-CAFI

23

cboColor = new JComboBox(); panBotones = new JPanel(); btnDibujar = new JButton(); btnLimpiar = new JButton(); btnSalir = new JButton(); //LA VENTANA getContentPane().setLayout(new GridLayout(1, 2)); setTitle("Ventana de Gráficos"); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { exitForm(evt); } }); //PANEL PRINCIPAL panPrincipal.setLayout(new GridLayout(3, 1)); //SUB PANEL SUPERIOR panSuperior.setLayout(null); panSuperior.setBackground(new java.awt.Color(255, 255, 204)); lblFigura.setText("Figura"); panSuperior.add(lblFigura); lblFigura.setBounds(30, 40, 80, 20); lblRadio.setText("Radio"); panSuperior.add(lblRadio); lblRadio.setBounds(30, 70, 80, 20); cboFigura.setBackground(new java.awt.Color(255, 255, 204)); cboFigura.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Circulo", "Rectangulo" })); panSuperior.add(cboFigura); cboFigura.setBounds(80, 40, 90, 20); txtRadio.setText("20.0"); panSuperior.add(txtRadio); txtRadio.setBounds(80, 70, 50, 20); panPrincipal.add(panSuperior); //SUB PANEL De CONTROLES panControles.setLayout(null); panControles.setBackground(new Color(255, 255, 204)); lblColor.setText("Color"); panControles.add(lblColor); lblColor.setBounds(30, 10, 80, 20); lblCentro.setText("Centro"); panControles.add(lblCentro); lblCentro.setBounds(30, 40, 80, 20); txtCX.setText("0.0"); panControles.add(txtCX); txtCX.setBounds(80, 40, 40, 20); txtCY.setText("0.0"); panControles.add(txtCY); txtCY.setBounds(130, 40, 40, 20); cboColor.setBackground(new Color(255, 255, 204)); cboColor.setModel(new DefaultComboBoxModel(new String[] { "Rojo", "Verde", "Azul" ,"Amarillo"})); cboColor.setSelectedIndex(0); panControles.add(cboColor);

Page 24: Java Swing

Analista Programador INGENIA-CAFI

24

cboColor.setBounds(80, 10, 90, 20); panPrincipal.add(panControles); //SUB PANEL DEL BOTONES panBotones.setLayout(new FlowLayout(java.awt.FlowLayout.CENTER, 5, 10)); panBotones.setBackground(new Color(255, 255, 204)); btnDibujar.setText("Dibujar"); btnDibujar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnDibujarActionPerformed(evt); } }); panBotones.add(btnDibujar); btnLimpiar.setText("Limpiar"); btnLimpiar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnLimpiarActionPerformed(evt); } }); panBotones.add(btnLimpiar); btnSalir.setText("Salir"); btnSalir.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnSalirActionPerformed(evt); } }); panBotones.add(btnSalir); panPrincipal.add(panBotones); getContentPane().add(panPrincipal); //PANEL DE DIBUJO panDibujo = new JPanel() { public void paintComponent(Graphics g) { Graphics2D g2d = (Graphics2D)g; g2d.clearRect(0,0,getWidth(), getHeight()); //Crea el objeto a Dibujar circulo = new Ellipse2D.Double(100.0 + Double.parseDouble( txtCX.getText() ), 100.0 + Double.parseDouble( txtCY.getText() ), Double.parseDouble( txtRadio.getText() ), Double.parseDouble( txtRadio.getText() )); // arco= new Arc2D.Double(100,100,10,10, 5, 5, 2); rectangulo=new Rectangle2D.Double(100.0 + Double.parseDouble( txtCX.getText() ), 100.0 + Double.parseDouble( txtCY.getText() ), Double.parseDouble( txtRadio.getText() ), Double.parseDouble( txtRadio.getText() )); g2d.setBackground( Color.white );

Page 25: Java Swing

Analista Programador INGENIA-CAFI

25

//Establece el color de relleno if (cboColor.getSelectedIndex() == 0) g2d.setPaint( Color.red ); else if (cboColor.getSelectedIndex() == 1) g2d.setPaint( Color.green ); else if (cboColor.getSelectedIndex() == 2) g2d.setPaint( Color.blue ); else if (cboColor.getSelectedIndex() == 3) g2d.setPaint( Color.YELLOW ); if (cboFigura.getSelectedIndex() == 0) g2d.fill( circulo ); else if (cboFigura.getSelectedIndex() == 1) g2d.fill(rectangulo); } }; panDibujo.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 2, true)); getContentPane().add(panDibujo); } private void btnDibujarActionPerformed(ActionEvent evt) { //Redibuja el componente panDibujo.repaint(); } private void btnLimpiarActionPerformed(ActionEvent evt) { //Valor de Inicio txtRadio.setText("20.0"); txtCX.setText("0.0"); txtCY.setText("0.0"); cboColor.setSelectedIndex(2); } private void btnSalirActionPerformed(ActionEvent evt) { WindowEvent we = new java.awt.event.WindowEvent(this,0); exitForm(we); } private void exitForm(WindowEvent evt) { System.exit(0); } public static void main(String args[]) { new VentanaDibujo().show(); } }

Page 26: Java Swing

Analista Programador INGENIA-CAFI

26

// EJEMPLO 18 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MostrarInformacion extends JFrame { private JPanel panData; private JLabel lblCodigo; private JLabel lblNombre; private JTextField txtCodigo; private JTextField txtNombre; private JPanel panNavegador; private JButton btnPrimero; private JButton btnUltimo; private JButton btnSiguiente; private JButton btnAnterior; private JButton btnGrabar; private JButton btnLimpiar; public MostrarInformacion() { // Permite inicializar los componentes visuales initComponents(); } private void initComponents() { getContentPane().setLayout(new GridLayout(2, 1) ); // Pone el titulo del frame setTitle( "Ventana SWING" ); // Pone un listener para que responda a cierre de la ventana addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent evt ) { System.exit(0); } } );

Page 27: Java Swing

Analista Programador INGENIA-CAFI

27

// Crea el panel para la data panData = new JPanel( new GridLayout( 2, 2 ) ); lblCodigo = new JLabel( "Código :" ); lblNombre = new JLabel( "Nombre :" ); txtCodigo = new JTextField( "" ); txtNombre = new JTextField( "" ); panData.add( lblCodigo ); panData.add( txtCodigo ); panData.add( lblNombre ); panData.add( txtNombre ); getContentPane().add( panData ); // Crea el panel para el navegador panNavegador = new JPanel( new GridLayout( 1, 6 ) ); btnPrimero = new JButton( "Primero" ); btnAnterior = new JButton( "Anterior" ); btnSiguiente = new JButton( "Siguiente" ); btnUltimo = new JButton( "Ultimo" ); btnGrabar = new JButton( "Grabar" ); btnLimpiar = new JButton( "Limpiar" ); btnPrimero.setBackground( new Color(102, 102, 255) ); btnPrimero.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent evt ) { onClickNavegador( 1 ); } } ); btnAnterior.setBackground( new Color(255, 153, 153) ); btnAnterior.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent evt) { onClickNavegador( 2 ); } } ); btnSiguiente.setBackground( new java.awt.Color(0, 204, 204) ); btnSiguiente.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent evt ) { onClickNavegador( 3 ); } } ); btnUltimo.setBackground( new Color(255, 255, 153) ); btnUltimo.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent evt ) { onClickNavegador( 4 ); } }

Page 28: Java Swing

Analista Programador INGENIA-CAFI

28

); btnGrabar.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent evt ) { onClickNavegador( 5 ); } } ); btnLimpiar.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent evt ) { onClickNavegador( 6 ); } } ); panNavegador.add( btnPrimero ); panNavegador.add( btnAnterior ); panNavegador.add( btnSiguiente ); panNavegador.add( btnUltimo ); panNavegador.add( btnGrabar ); panNavegador.add( btnLimpiar ); getContentPane().add( panNavegador ); pack(); } private void onClickNavegador( int accion ) { try { switch ( accion ) { case 1 : System.out.println("Primero"); break; case 2 : System.out.println("Anterior"); break; case 3 : System.out.println("Siguiente"); break; case 4 : System.out.println("Ultimo"); break; case 5 : System.out.println("Grabar"); break; case 6 : System.out.println("Limpiar"); break; } } catch( Exception e2 ) { System.out.println( e2.getMessage() ); e2.printStackTrace(); } } // El main public static void main( String args[] ) { new MostrarInformacion().show(); } }

Page 29: Java Swing

Analista Programador INGENIA-CAFI

29

import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MostrarInformacion extends JFrame { static int posicionfila ; private JPanel panData; private JLabel lblCodigo; private JLabel lblNombre; private JTextField txtCodigo; private JTextField txtNombre; private JPanel panNavegador; private JButton btnPrimero; private JButton btnUltimo; private JButton btnSiguiente; private JButton btnAnterior; private JButton btnGrabar; private JButton btnLimpiar; private String [][] listaEmpleados = { { "Carmelo Cotón"," 123123"} , {"Aitor Menta"," 224224"} , {"Juan Sinmiedo"," 316316"}, {"Juana Laloca"," 989889"}, {"Perencejo Berenjeno"," 765765"}, {"Pedro Drope", "678876"} , { "Perico Lospalotes", "006799"}, { "Juan Tanamera", "565678"}, { "Monica Levinski", "696996"}, {"Maximum Minimum", "9009"} }; public MostrarInformacion() { // Permite inicializar los componentes visuales initComponents(); }

Page 30: Java Swing

Analista Programador INGENIA-CAFI

30

private void initComponents() { getContentPane().setLayout(new GridLayout(2, 1) ); // Pone el titulo del frame setTitle( "Ventana SWING" ); // Pone un listener para que responda a cierre de la ventana addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent evt ) { System.exit(0); } } ); // Crea el panel para la data panData = new JPanel( new GridLayout( 2, 2 ) ); lblCodigo = new JLabel( "Código :" ); lblNombre = new JLabel( "Nombre :" ); txtCodigo = new JTextField( "" ); txtNombre = new JTextField( "" ); panData.add( lblCodigo ); panData.add( txtCodigo ); panData.add( lblNombre ); panData.add( txtNombre ); getContentPane().add( panData ); // Crea el panel para el navegador panNavegador = new JPanel( new GridLayout( 1, 6 ) ); btnPrimero = new JButton( "Primero" ); btnAnterior = new JButton( "Anterior" ); btnSiguiente = new JButton( "Siguiente" ); btnUltimo = new JButton( "Ultimo" ); btnGrabar = new JButton( "Grabar" ); btnLimpiar = new JButton( "Limpiar" ); btnPrimero.setBackground( new Color(102, 102, 255) ); btnPrimero.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent evt ) { onClickNavegador( 1 ); } } ); btnAnterior.setBackground( new Color(255, 153, 153) ); btnAnterior.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent evt) { onClickNavegador( 2 ); } } );

Page 31: Java Swing

Analista Programador INGENIA-CAFI

31

btnSiguiente.setBackground( new java.awt.Color(0, 204, 204) ); btnSiguiente.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent evt ) { onClickNavegador( 3 ); } } ); btnUltimo.setBackground( new Color(255, 255, 153) ); btnUltimo.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent evt ) { onClickNavegador( 4 ); } } ); btnGrabar.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent evt ) { onClickNavegador( 5 ); } } ); btnLimpiar.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent evt ) { onClickNavegador( 6 ); } } ); panNavegador.add( btnPrimero ); panNavegador.add( btnAnterior ); panNavegador.add( btnSiguiente ); panNavegador.add( btnUltimo ); panNavegador.add( btnGrabar ); panNavegador.add( btnLimpiar ); getContentPane().add( panNavegador ); pack(); } private void onClickNavegador( int accion ) { try { String nombre, codigo; switch ( accion ) { case 1 : // columna 0 o sino 1 codigo=listaEmpleados[0][1]; txtCodigo.setText(codigo); nombre=listaEmpleados[0][0];

Page 32: Java Swing

Analista Programador INGENIA-CAFI

32

txtNombre.setText(nombre); break; case 2 : codigo=listaEmpleados[--posicionfila][1]; txtCodigo.setText(codigo); nombre=listaEmpleados[posicionfila][0]; txtNombre.setText(nombre); System.out.println("Anterior"); break; case 3 : System.out.println("Siguiente"); codigo=listaEmpleados[++posicionfila][1]; txtCodigo.setText(codigo); nombre=listaEmpleados[posicionfila][0]; txtNombre.setText(nombre); break; case 4 : codigo=listaEmpleados[9][1]; txtCodigo.setText(codigo); nombre=listaEmpleados[9][0]; txtNombre.setText(nombre); System.out.println("Ultimo"); break; case 5 : System.out.println("Grabar"); break; case 6 : System.out.println("Limpiar"); txtCodigo.setText(""); txtNombre.setText(""); break; } } catch( Exception e2 ) { System.out.println( e2.getMessage() ); e2.printStackTrace(); } } // El main public static void main( String args[] ) { new MostrarInformacion().show(); } }