4 dic 2010

Ejemplo tipo void con parámetros

En esta aplicación vamos a desarrollar un programa para convertir una cantidad dada en km. a millas, yardas y metros (el nombre para la clase será "convertidor").

1 km = 0.621371 yardas
1 km = 1093.6133 millas
1 km = 1000 metros


Codificación del applet:

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

public class convertidor extends JApplet implements ActionListener{

          //Declaración de controles a utilizar
          JButton btnProcesar, btnBorrar;
          JLabel lblKilometros;
          JTextField txtKilometros;
          JTextArea txtS;
          JScrollPane scpScroll;

          //Interfaz GUI
          public void init(){
                    getContentPane().setLayout(null);

                    lblKilometros = new JLabel("Kilometros");
                    lblKilometros.setBounds(15,15,100,23);
                    getContentPane().add(lblKilometros);

                    txtKilometros = new JTextField();
                    txtKilometros.setBounds(90,15,100,23);
                    getContentPane().add(txtKilometros);

                    btnProcesar = new JButton("PROCESAR");
                    btnProcesar.setBounds(245,15,100,23);
                    btnProcesar.addActionListener(this);
                    getContentPane().add(btnProcesar);

                    btnBorrar = new JButton("BORRAR");
                    btnBorrar.setBounds(245,40,100,23);
                    btnBorrar.addActionListener(this);
                    getContentPane().add(btnBorrar);

                    txtS = new JTextArea();
                    txtS.setFont(new Font("monospaced",0,12));

                    scpScroll = new JScrollPane(txtS);
                    scpScroll.setBounds(15,81,331,150);
                    getContentPane().add(scpScroll);
          }

          //procesa eventos tipo ActionEvent
          public void actionPerformed( ActionEvent e ){
                    if(e.getSource()==btnProcesar)
                              procesar();
                    if(e.getSource()==btnBorrar)
                              borrar();
          }

          //método del botón procesar
          void procesar(){
                    //declaración de variable local
                    double nkm;

                    //entrada de datos
                    nkm = Double.parseDouble(txtKilometros.getText());

                    //invocación de métodos
                    txtS.setText("");
                    calcularMetros(nkm);
                    calcularMillas(nkm);
                    calcularYardas(nkm);
          }

          //método que convierte a metros
          void calcularMetros(double xkm){
                    double metros;
                    metros = xkm*1000;
                    imprimir("Metros: "+metros);
          }

          //método que convierte a millas
          void calcularMillas(double xkm){
                    double millas;
                    millas = xkm*0.621371;
                    imprimir("Millas: "+millas);
          }

          //método que convierte a yardas
          void calcularYardas(double xkm){
                    double yardas;
                    yardas = xkm*1093.6133;
                    imprimir("Yardas: "+yardas);
          }

          //método del botón borrar
          void borrar(){
                    txtS.setText("");
                    txtKilometros.setText("");
                    txtKilometros.requestFocus();
          }

          //método que imprime una cadena de texto añadiendo un salto de línea
          public void imprimir(String cad){
                    txtS.append(cad+"\n");
          }
}


Resultado:



Para comprender mejor el ejemplo ir a métodos tipo void.
Ir a métodos con valor de retorno.

1 comentario: