Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/03/2011, 13:35
Avatar de Slackin
Slackin
 
Fecha de Ingreso: noviembre-2007
Ubicación: Puerto Montt, Chile
Mensajes: 86
Antigüedad: 17 años
Puntos: 4
Respuesta: Evento asociado al cambiar el contenido de un textbox

Gracias. he logrado resolverlo como uds indicaban. Ahora el programa está terminado y se ve así:

Código Java:
Ver original
  1. import java.awt.*;
  2. import java.applet.Applet;
  3. import java.awt.event.*;
  4. import javax.swing.JTextField;
  5.  
  6. public class Cap12_Acumular extends Applet implements ActionListener {
  7.  
  8.     private Button year, ingresar;
  9.     private TextField interestField, amountField, outcome;
  10.     private Investment myMoney;
  11.  
  12.     public void init() {
  13.         Label amountLabel = new Label("Enter amount:");
  14.         add(amountLabel);
  15.  
  16.         amountField = new TextField(10);
  17.         add(amountField);
  18.         amountField.addActionListener(this);
  19.  
  20.         Label rateLabel = new Label("Enter interest rate");
  21.         add(rateLabel);
  22.        
  23.         interestField = new TextField(4);
  24.         add(interestField);
  25.         interestField.addActionListener(this);
  26.  
  27.         year = new Button ("Calcular");
  28.         add(year);
  29.         year.addActionListener(this);
  30.  
  31.         Label outcomeLabel = new Label("Your money at the end of the year is");
  32.         add(outcomeLabel);
  33.  
  34.         outcome = new TextField(20);
  35.         add(outcome);
  36.  
  37.         myMoney = new Investment();
  38.     }
  39.  
  40.     public void actionPerformed(ActionEvent event) {
  41.        
  42.         if(event.getSource() instanceof TextField)
  43.             if(event.getSource().equals(amountField)){
  44.                 float amount = Integer.parseInt(amountField.getText());
  45.                 myMoney.setInitialAmount(amount);
  46.             }
  47.             else{
  48.                 float rate = Float.parseFloat(interestField.getText());
  49.                 myMoney.setRate(rate);
  50.             }
  51.                  
  52.          if (event.getSource() == year) {
  53.             myMoney.anotherYear();
  54.             float newAmount = myMoney.getNewAmount();
  55.             int dollars = (int) newAmount;
  56.             int cents = Math.round(100.0f * (newAmount - dollars));
  57.             outcome.setText(dollars + " dollars " + cents + " cents");
  58.         }
  59.     }
  60. }
  61.  
  62. class Investment {
  63.  
  64.     private float interestRate;
  65.     private float oldAmount, newAmount;
  66.  
  67.     public void setInitialAmount(float amount) {
  68.         oldAmount = amount;
  69.     }
  70.  
  71.     public void setRate(float rate) {
  72.         interestRate = rate;
  73.     }
  74.  
  75.     public void anotherYear() {
  76.         newAmount = oldAmount + (oldAmount * interestRate / 100.0f);
  77.         oldAmount = newAmount;
  78.     }
  79.  
  80.     public float getNewAmount() {
  81.         return newAmount;
  82.     }
  83. }