lunes, 12 de marzo de 2012

APPLETS CON GRAFICOS

Muestra de como deben de quedar los trabajos con Applets

Ejemplo 1

Ejemplo 2 



Applets de Java

Estructura Básica de un Applet de Java


import java.awt.*;
    import java.applet.*;

    public class HolaMundo extends Applet {
        public void paint( Graphics g ) {

           
                       g.drawOval(100,100, 50,50);
           
            }

        }

miércoles, 7 de marzo de 2012

Interfaces gráficas

Realizar los siguientes ejercicios referentes a la creación de códigos para realizar:
a) Botones con gráficos
b) Casilla de verificación
c) Radio Botón


a) Botones con gráficos: Añada dos botones más con gráficos a parte de los que se muestran, las imagenes deberán ser iconos pequeños.


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class PruebaBoton extends JFrame {
   private JButton botonSimple, botonElegante;
   public PruebaBoton()
   {
       super( "Prueba de botones" );
       Container c = getContentPane();
       c.setLayout( new FlowLayout() );
       // crea los botones
       botonSimple = new JButton( "Boton simple" );
        //agregamos el boton al panel de contenido
c.add( botonSimple );

//creamos dos objetos ImageIcon que representan al
//objeto Icon predeterminado y al objeto Icon de
//sustitucion para el botonElegante.
//los gif se presupone que estan en el mismo
//directorio que la aplicación que las utiliza
Icon icono1 = new ImageIcon( "pucca_054.gif");
Icon icono2 = new ImageIcon( "pucca_043.gif" );
//crea el boton con el gif y el texto (texto a la
//derecha del icono como predeterminado)
botonElegante = new JButton("Boton elegante",icono1);
//se utiliza el metodo setRollOverIcon heredado de
//AbstractButton para especificar la imagen que
//aparece cuando el raton se posiciona sobre el boton
 botonElegante.setRolloverIcon( icono2 );
//agregamos el boton al panel de contenido
c.add( botonElegante );
// crea una instancia de la clase interna
//anejadorBoton para usarla en el manejo de eventos
//de botón
ManejadorBoton manejador = new ManejadorBoton();
botonElegante.addActionListener( manejador );
botonSimple.addActionListener( manejador );
setSize( 300, 100 );
show();
 } // fin del constructor de PruebaBoton

 public static void main( String args[] )
   {
      PruebaBoton ap = new PruebaBoton();
ap.addWindowListener(
         new WindowAdapter() {
            public void windowClosing( WindowEvent e )
            {
               System.exit( 0 );
            } // fin del método windowClosing
         } // fin de la clase interna anónima
      ); // fin de addWindowListener
   } // fin de main
// clase interna para el manejo de eventos de botón

 private class ManejadorBoton implements ActionListener {
      public void actionPerformed( ActionEvent e )
      {
//mostramos un cuadro de dialogo de mensaje que contiene la
//etiqueta del boton que se pulso
         JOptionPane.showMessageDialog( null,
            "Usted oprimio:" + e.getActionCommand() );
}
}
}

b) El siguiente código representa un pequeño editor de código, añada por lo menos dos funciones más para modificar el texto


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class PruebaCasillaVerificacion extends JFrame {
   private JTextField t;
   private JCheckBox negrita, cursiva;
   public PruebaCasillaVerificacion()
   {
      super( "Prueba de JCheckBox" );
      Container c = getContentPane();
      c.setLayout(new FlowLayout());
      //creamos e inicializamos el objeto JTextField
t = new JTextField( "Texto que cambia", 28 );
//establecemos el estilo de la fuente y añadimos al panel
t.setFont( new Font( "TimesRoman",Font.PLAIN, 14 ) );
c.add( t );
// crea los objetos casilla de verificación
negrita = new JCheckBox( "Negrita" );
c.add( negrita );
cursiva = new JCheckBox( "Cursiva" );
c.add( cursiva );
//si se hace click en un objeto JCheckBox se genera un
//ItemEvent que puede ser manejado por un ItemListener
//(cualquier objeto de una clase que implemente la interfaz
//ItemListener)
//un objeto ItemListener debe definir el metodo
//itemStateChanged
ManejadorCasillaVerificacion
manejador = new
ManejadorCasillaVerificacion();
negrita.addItemListener( manejador );
cursiva.addItemListener( manejador );
      addWindowListener(
         new WindowAdapter() {
            public void windowClosing( WindowEvent e )
            {
System.exit( 0 );
            } // fin del método windowClosing
         } // fin de la clase interna anónima
      ); // fin de addWindowListener
      setSize( 325, 100 );
      show();
   } // fin del constructor de PruebaCasillaVerificacion
   public static void main( String args[] )
   {
      new PruebaCasillaVerificacion();
   }
private class ManejadorCasillaVerificacion implements
ItemListener {
      private int valNegrita = Font.PLAIN;
      private int valCursiva = Font.PLAIN;
//con e.getSource() determinamos el onjeto sobre el que se hizo
//click
//con las estructuras if-else se determina cual fue modificado y
//la accion que tenemos que llevar a cabo
      public void itemStateChanged( ItemEvent e )
      {
         if ( e.getSource() == negrita )
        if ( e.getStateChange() == ItemEvent.SELECTED )
               valNegrita = Font.BOLD;
            else
               valNegrita = Font.PLAIN;

         if ( e.getSource() == cursiva )
         if ( e.getStateChange() == ItemEvent.SELECTED )
               valCursiva = Font.ITALIC;
            else
               valCursiva = Font.PLAIN;

//establecemos los tipos de la nueva fuente
         t.setFont(
new Font( "TimesRoman", valNegrita + valCursiva, 14 ) );
//repintamos el texto
         t.repaint();
      } // fin del método itemStateChanged
} // fin de la clase interna //ManejadorCasillaVerificacion
} // fin de la clase PruebaCasillaVerificacion

c) En el siguiente código se deberá de manipular las propiedades de la imagen para que se muestre la imagen que corresponde con el radio boton añada las imagenes necesarias



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class RadioButtonDemo extends JPanel {
    static JFrame frame;
    static String birdString = "Bird";
    static String catString = "Cat";
    static String dogString = "Dog";
    static String rabbitString = "Rabbit";
    static String pigString = "Pig";
    JLabel picture;
    public RadioButtonDemo() {

//creamos los radio buttons
//el primero seleccionado es el birdButton
//tambien se usan mnemonicos para acceso por teclado
JRadioButton birdButton = new JRadioButton(birdString);
    birdButton.setMnemonic('b');
         birdButton.setActionCommand(birdString);
         birdButton.setSelected(true);
JRadioButton catButton = new JRadioButton(catString);
        catButton.setMnemonic('c');
        catButton.setActionCommand(catString);
JRadioButton dogButton = new JRadioButton(dogString);
        dogButton.setMnemonic('d');
        dogButton.setActionCommand(dogString);
JRadioButton rabbitButton = new JRadioButton(rabbitString);
        rabbitButton.setMnemonic('r');
        rabbitButton.setActionCommand(rabbitString);
JRadioButton pigButton = new JRadioButton(pigString);
        pigButton.setMnemonic('p');
        pigButton.setActionCommand(pigString);
//creamos un grupo y los anyadimos
ButtonGroup group = new ButtonGroup();
        group.add(birdButton);
        group.add(catButton);
        group.add(dogButton);
        group.add(rabbitButton);
        group.add(pigButton);
        //como en los ejemplos anteriores
        RadioListener myListener = new RadioListener();
          birdButton.addActionListener(myListener);
        catButton.addActionListener(myListener);
        dogButton.addActionListener(myListener);
        rabbitButton.addActionListener(myListener);
        pigButton.addActionListener(myListener);
// utilizamos un objeto Icon como argumento para el constructor
//de JLabel
//de inico mostraremos la imagen Bird.gif
picture = new JLabel(new ImageIcon("images/"
                                           + birdString
                                           + ".jpg"));


//establecemos la dimension
picture.setPreferredSize(new Dimension(177,122));
//establecemos un panel para la ordenacion de los componentes
        JPanel radioPanel = new JPanel();
        radioPanel.setLayout(new GridLayout(0, 1));
        radioPanel.add(birdButton);
        radioPanel.add(catButton);
        radioPanel.add(dogButton);
        radioPanel.add(rabbitButton);
        radioPanel.add(pigButton);
//con BorderLayout podemos ordenar los componentes en cinco
//regiones: norte, sur ,este,oeste y centro
        setLayout(new BorderLayout());
//el panel se cargara en el oeste y la imagen se mostrara en el
//centro
        add(radioPanel, BorderLayout.WEST);
        add(picture, BorderLayout.CENTER);

setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
    }
   //como en la creacion de los botones hicimos <<SWING: JButton, JCheckBox y JRadioButton>>

 //birdButton.setActionCommand(birdString);
 //en todos los botones de radio, ahora sabemos que
 //imagen tenemos que mostrar con
 //e.getActionCommand()
       class RadioListener implements ActionListener {
       public void actionPerformed(ActionEvent e) {
            picture.setIcon(new ImageIcon("images/"
                    + e.getActionCommand()+ ".jpg"));
        }
    }
    public static void main(String s[]) {
         frame = new JFrame("RadioButtonDemo");
         frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{System.exit(0);}
         });

         frame.getContentPane().add(new
   RadioButtonDemo(), BorderLayout.CENTER);
         frame.pack();
         frame.setVisible(true);
    }}

Estos programas deberán entregarse a más tardar el día LUNES