Siguiendo con AWT

Despues de pasarme siguiendo el tutorial que especifiqué en Empezando con AWT, y viendo lo poco que me entero de todo el código que va apareciendo y demás, voy a probar a aprender de los códigos que Casidiablo tiene puestos en su apartado de Java.

He adaptado los códigos de los ejemplos de [GUIs de Java]. He vuelto a hacer la misma aplicación que en Primera aplicación con AWT, el de calcular el máximo común divisor, pero esta vez, en caso de que no se introduzcan números enteros en los campos de texto, no da error.


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

public class PruebaJFrame extends JFrame {
    private int ancho = 300, alto = 170, altofila = 25;
    Dimension entero, medio, tercio, cuarto;
   private JLabel etiqueta1, etiqueta2, etiqueta3;
   private JTextField numero1, numero2;
   private JButton mcdCalc;

   // configurar GUI
   public PruebaJFrame()
   {
      super( "Calcular mcd" );
      entero = new Dimension(ancho, altofila);
      medio = new Dimension((int)Math.floor(ancho / 2),altofila);
      tercio = new Dimension((int)Math.floor(ancho / 3),altofila);
      cuarto = new Dimension((int)Math.floor(ancho / 4),altofila);
      this.setResizable(false);

      // obtener panel de contenido y establecer su esquema
      Container contenedor = getContentPane();
      contenedor.setLayout( new FlowLayout() );

      etiqueta1 = new JLabel("Introduce un número: ");
      etiqueta1.setPreferredSize(medio);
      contenedor.add(etiqueta1);
      numero1 = new JTextField(5);
      numero1.setPreferredSize(medio);
      contenedor.add(numero1);
      etiqueta2 = new JLabel("Introduce un número: ");
      etiqueta2.setPreferredSize(medio);
      contenedor.add(etiqueta2);
      numero2 = new JTextField(5);
      numero2.setPreferredSize(medio);
      contenedor.add(numero2);
      mcdCalc = new JButton("Calcular mcd");
      mcdCalc.setPreferredSize(medio);
      contenedor.add(mcdCalc);
      ManejadorMCD manejarmcd = new ManejadorMCD();
      etiqueta3 = new JLabel("",JLabel.CENTER);
      etiqueta3.setPreferredSize(entero);
      contenedor.add(etiqueta3);
      mcdCalc.addActionListener(manejarmcd);


      setSize( ancho, alto );
      setVisible( true );

   } // fin del constructor

   public static void main( String args[] )
   {
      JFrame.setDefaultLookAndFeelDecorated(true);
      PruebaJFrame aplicacion = new PruebaJFrame();
      aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   }

   private class ManejadorMCD implements ActionListener
   {
       public void actionPerformed(ActionEvent evento)
       {
           try
           {
               etiqueta3.setText(String.valueOf(mcd(Integer.parseInt(numero1.getText()), Integer.parseInt(numero2.getText()))));
           } catch (NumberFormatException e)
           {
               etiqueta3.setText("Introduzca números enteros, por favor");
           }
       }
   }

   private int mcd(int x, int y)
    {
       if (x % y == 0)
           return y;
       else
           return mcd(y, x % y);
   }
}

El resulstado:

0 comentarios:

Publicar un comentario