Foros del Web » Programación para mayores de 30 ;) » Java »

Evento asociado al cambiar el contenido de un textbox

Estas en el tema de Evento asociado al cambiar el contenido de un textbox en el foro de Java en Foros del Web. Hola a todos. Estoy haciendo un applet que tiene dos casillas de texto y un botón. La idea es que cada vez que alguien modifica ...
  #1 (permalink)  
Antiguo 24/03/2011, 12:38
Avatar de Slackin  
Fecha de Ingreso: noviembre-2007
Ubicación: Puerto Montt, Chile
Mensajes: 86
Antigüedad: 17 años
Puntos: 4
Pregunta Evento asociado al cambiar el contenido de un textbox

Hola a todos.
Estoy haciendo un applet que tiene dos casillas de texto y un botón. La idea es que cada vez que alguien modifica un textbox se ejecute una instrucción, pero no puedo hacer que se ejecute la instruccion cuando alguien cambia el texto1 o el texto2.
Tanto if (event.getSource()==texto1) como if (event.getSource()==texto2) simpre son falsas, por lo cual no se ejecuta la proxima instrucción.
¿Qúe esta mal en el código?

Parte del código es el siguiente:
Cita:
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;

public class PruebadeTextfield extends Applet implements ActionListener {

private Button anio;
private TextField texto1, texto2;

public void init() {
texto1 = new TextField(8);
add(texto1);
texto1.addActionListener(this);

texto2 = new TextField(8);
add(texto2);
texto2.addActionListener(this);

anio = new Button ("En el Año");
add(anio);
anio.addActionListener(this);

}

public void actionPerformed(ActionEvent event) {
if (event.getSource()==texto1) {
//Hacer algo acá
}
if (event.getSource()==texto2) {
//Hacer otra cosa
}
if (event.getSource() == anio) {
//Imprimir el anio
}
}
}
Gracias
  #2 (permalink)  
Antiguo 25/03/2011, 01:07
Avatar de Physlet  
Fecha de Ingreso: octubre-2010
Ubicación: Panamá
Mensajes: 48
Antigüedad: 14 años
Puntos: 9
Respuesta: Evento asociado al cambiar el contenido de un textbox

Para las cadenas debes trabajar con el método equals() en vez del operador ==
Por ejemplo: cadena1.equals(cadena2); //Si la cadena1 es igual a la cadena2
  #3 (permalink)  
Antiguo 25/03/2011, 08:16
Avatar de sivadmp  
Fecha de Ingreso: febrero-2011
Ubicación: La Paz - Bolivia
Mensajes: 293
Antigüedad: 13 años, 9 meses
Puntos: 20
Respuesta: Evento asociado al cambiar el contenido de un textbox

bueno primero deberias comparar que tipo de componente es, por que tienes botones y textfield's

luego comparar con el metodo equals


i
Código java:
Ver original
  1. f (event.getSource() instanceof TextField) {
  2.           if(arg0.getSource().equals(txt1)){
  3.                    
  4.     }
  5. }
__________________
agradecer no cuesta nada
Entre más información proporciones más fácil será ayudarte, y asi evitar adivinar el problema con el que cuentas.
  #4 (permalink)  
Antiguo 25/03/2011, 13:35
Avatar de 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. }

Etiquetas: contenido, textbox, asociados
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:56.