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

No puedo borrar un JTextField

Estas en el tema de No puedo borrar un JTextField en el foro de Java en Foros del Web. Hola,estoy recien aprendiendo java y este fue mi primer ejercicio y ya tengo un problema en esta parte Código PHP: boton . addActionListener (new  ActionListener ...
  #1 (permalink)  
Antiguo 08/01/2008, 21:43
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 2 meses
Puntos: 3
No puedo borrar un JTextField

Hola,estoy recien aprendiendo java y este fue mi primer ejercicio y ya tengo un problema en esta parte


Código PHP:
boton.addActionListener(new ActionListener() {
public 
void actionPerformed(ActionEvent e){
           
borrar();
                }
         }); 
el jcreator me dice identifier expected y me marca la linea de boton.addAction...

Al hacer click en el boton quiero que se borre la informacion del JTextField

como puedo solucionar el problema?
gracias

este es el codigo completo
Código PHP:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class 
Prac1 extends JFrame implements ActionListener//,KeyListener
{
private 
JTextField caja=null;    

Container contenedor getContentPane();
    
public 
Prac1()
{
setTitle("Practicando");


JPanel panel=new JPanel();
panel.setLayout(new BorderLayout());

caja=new JTextField();    
caja.setBackground(Color.green);
caja.setForeground(Color.BLUE);


JButton boton =null;
 
boton = new JButton("borrar"); 

panel.add(boton);    
panel.add(caja,BorderLayout.NORTH);
contenedor.add(panel,BorderLayout.CENTER);

}

boton.addActionListener(new ActionListener() {
public 
void actionPerformed(ActionEvent e){
           
borrar();
                }
         });


public 
void borrar()
{
caja.setText("");
}

}
//fin clase 
  #2 (permalink)  
Antiguo 09/01/2008, 09:32
 
Fecha de Ingreso: noviembre-2007
Mensajes: 3
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: No puedo borrar un JTextField

una pregunta, porque implementas la interfaz ActionListener si no vas a redefinir el metodo actionPerformed?
no lo he ejecutado, pero supongo que ahi es donde esta el problema
  #3 (permalink)  
Antiguo 09/01/2008, 09:55
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 2 meses
Puntos: 3
Re: No puedo borrar un JTextField

y como deberia hacerlo?,estoy recien aprendiendo y pense que se implementaba la interfaz ActionListener para que funcionara el metodo actionPerformed

con redefinir a que te refieres?
gracias
  #4 (permalink)  
Antiguo 09/01/2008, 10:50
Avatar de victor666  
Fecha de Ingreso: junio-2007
Mensajes: 39
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: No puedo borrar un JTextField

bueno pues primero estas cometiendo un error puesto que estas declarando la accion del boton (boton.addActionL...) fuera del metodo constructor donde definiste la el objeto JButton boton... por esto te da el error de identifier expected ya que no reconoce el objeto llamado boton, y con respecto a lo de la interfaz no es necesario que la implementes ya que lo estas asiendo directamente dentro del metodo .addActionListener...

saludos
  #5 (permalink)  
Antiguo 09/01/2008, 14:03
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 2 meses
Puntos: 3
Re: No puedo borrar un JTextField

Muchas gracias victor666 por la ayuda porque pude solucionar el problema :)
otra consulta

Que es mas recomendable:
rabajar directamente con el metodo o implementar la interfaz para redefinir actionPerformed?

quede algo confundido con eso de implementar la interfaz,eso de implementar lo estaba sacando de un codigo de ejemplo.
gracias
  #6 (permalink)  
Antiguo 09/01/2008, 14:43
Avatar de victor666  
Fecha de Ingreso: junio-2007
Mensajes: 39
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: No puedo borrar un JTextField

pues la verdad eso depende de que tan grande sea tu aplicacion cuando se trata de declarar acciones para elementos como botones en aplicaciones pequeñas y que no requieran de un codigo demasiado extenso es mejor tratarlo como lo estas haciendo, pero en proyectos mas grandes incluso es mejor declarar una clase aparte para el manejo de los eventos...

... saludos
  #7 (permalink)  
Antiguo 09/01/2008, 15:32
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 2 meses
Puntos: 3
Re: No puedo borrar un JTextField

Cita:
Iniciado por victor666 Ver Mensaje
pues la verdad eso depende de que tan grande sea tu aplicacion cuando se trata de declarar acciones para elementos como botones en aplicaciones pequeñas y que no requieran de un codigo demasiado extenso es mejor tratarlo como lo estas haciendo, pero en proyectos mas grandes incluso es mejor declarar una clase aparte para el manejo de los eventos...

... saludos
Muchas gracias por la aclaracion,si no es mucho pedir ,que modificacion debo realizarle a mi codigo para ocupar actionPerformed implementando la interfaz ActionListener.y no hacerlo directamente dentro del metodo.

Me podrias hacer el ejemplo con mi codigo?,se me complica un poco java,pero me estoy esforzando por aprenderlo.
gracias
  #8 (permalink)  
Antiguo 09/01/2008, 15:49
Avatar de victor666  
Fecha de Ingreso: junio-2007
Mensajes: 39
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: No puedo borrar un JTextField

ok

cuando implementas una interfaz como ActionListener, esta te va a obligar a que crees un metodo, en este caso "void actionPerformed(ActionEvent e); " sierto.

public void actionPerformed(ActionEvent e){
//aqui escribes los eventos para todos los elementos

if(e.getSource == boton){
borrar();
}

}

y luego cambia dentro los parametros del addActionListener asi boton.addActionListener(this); para especificar que el oyente del evento esta implemetado dentro de nuestra clase...

  #9 (permalink)  
Antiguo 10/01/2008, 10:22
 
Fecha de Ingreso: noviembre-2007
Mensajes: 3
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: No puedo borrar un JTextField

chanfle, eso me pasa x no ejecutarlo, disculpa no me habia dado cuenta que el boton era una variable local (solo del metodo), en todo caso lo mas recomendable es que generalmente los componentes graficos siempre los declares como variables globales para que cualquier metodo pueda acceder a este.

Ahora que lo he ejecutado, creo que staba realmente mal, por que este codigo:

Código PHP:
boton.addActionListener(new ActionListener() {
public 
void actionPerformed(ActionEvent e){
           
borrar();
                }
         }); 
no estaba dentro de ningun metodo, estaba en el aire


Código PHP:
clase(){

       
constructor(){}

       
boton.addActionListener(new ActionListener() {
            public 
void actionPerformed(ActionEvent e){
                  
borrar();
                }
         });

        
borrar() {}


Con respecto a lo de implementar la interfaz ActionListener, es lo que intentaba decirle, que porque la implementaba si no iba a redefinir el metodo actionPerformed, porque segun tengo entendido cuando implementas una interfaz obligatoriamente debes de redefinir los metodos que proporciona esta
  #10 (permalink)  
Antiguo 10/01/2008, 17:19
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 2 meses
Puntos: 3
Re: No puedo borrar un JTextField

Muchas gracias por la ayuda que me han entregado
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 00:49.