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

Como pasar valores de Jtextfield para validarlos en otra clase

Estas en el tema de Como pasar valores de Jtextfield para validarlos en otra clase en el foro de Java en Foros del Web. Hola, llevo poco tiempo con java, bueno tengo 2 clases una con mi interfaz grafica y en la otra quiero hacer las validaciones de los ...
  #1 (permalink)  
Antiguo 24/01/2011, 13:18
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 2 meses
Puntos: 3
Como pasar valores de Jtextfield para validarlos en otra clase

Hola, llevo poco tiempo con java, bueno tengo 2 clases una con mi interfaz grafica y en la otra quiero hacer las validaciones de los JTextFields, cuando hago clikc en mi boton de ingreso recibo un:
Código:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
abajo coloco mis dos codigos y escribi comentario en donde llamo a la funcion de la clase Validaciones.

Como puedo solucionar el problema para hacer las validaciones en otra clase, y solamente llamar al metodo que valida en mi clase principal?
muchas gracias
Esta es mi clase principal Cliente
Código PHP:

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

public class 
Cliente extends JFrame
{
public static final 
long serialVersionUID 20112201L;  
public 
JButton botonIngreso=null;
public 
JButton botonBorrar=null;
public 
JButton botonSalir=null;
public 
JTextField text_rut=null;
public 
JTextField text_nombre=null;
public 
JPanel panel=null;

Container contenedor=getContentPane();  

public 
Cliente()
{
 
get_Panel();
  
this.setTitle("Ingresando");
  
this.setSize(400,400);
  
this.setVisible(true);
}

private 
JPanel get_Panel()
{
if(
panel==null)
{
panel=new JPanel();
panel.setLayout(null);
panel.add(get_textRut());
panel.add(get_textNombre());
panel.add(get_botonIngreso());
panel.add(get_botonBorrar());
panel.add(get_botonSalir());
contenedor.add(panel);
}
return 
panel;
}

private 
JTextField get_textRut()
{
  if(
text_rut==null)
  {
  
text_rut=new JTextField(9);  
  }
return 
text_rut;
}

private 
JTextField get_textNombre()
{
if(
text_nombre==null)
{
text_nombre=new JTextField(30);  
}
return 
text_nombre;
}

private 
JButton get_botonIngreso()
{
if(
botonIngreso==null)
{
botonIngreso=new JButton();
botonIngreso.setText("Ingresar");
botonIngreso.setBounds(30,150,80,26);
 

botonIngreso.addActionListener(new ActionListener()
        {
          public 
void actionPerformed(ActionEvent e)
          {       
//Aqui creo el objeto "vali" de la clase validaciones
           
Validaciones vali=new Validaciones();
            
/*aqui llamo a mi metodo getValida que 
esta en la otra clase, 
al parecer no consigo enviar
 la referencia de mis JTextField a la 
otra clase, porque al hacer cick en 
el boton ingresar recibo un 
error Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException*/
          
va.getValida(); 
        
        
FabricaConexion fabrica=new FabricaConexion();
        
Connection conexion=fabrica.hacerConexion();
        
       try{
  
String sql "INSERT INTO persona("+"rut,"+"nombre) "+"VALUES(?,?)";
     
    
PreparedStatement p conexion.prepareStatement(sql);
    
p.setInt(1,Integer.parseInt(text_rut.getText()));
    
p.setString(2,text_nombre.getText());

    
p.executeUpdate();
 
fabrica.cerrarConexion();
       }
       catch(
SQLException ee)
       {
         
System.out.println("e:"+ee);
       }}});
}
  return 
botonIngreso;
}

public static 
void main(String[] args)
{
new 
Cliente();
}


Esta es la clase que quiero ocupar para las validaciones, por ahora sólo intento validar los campos vacios

Código PHP:

import javax
.swing.JOptionPane;
public class 
Validaciones extends Cliente
{
  
//Aqui creo una variable para instanciar la clase cliente
public Cliente cliente;

//hago este constructor para despues llamar al metodo en la clase Cliente
public Validaciones()
{}

//este constructor es para poder instanciar a mis objetos en la clase Cliente
public  Validaciones (Cliente cliente)
 {
this.cliente=cliente;
}

//quiero devolver la variable que apunta a la instancia de la clase Cliente que se //llama cliente
 
public Cliente getValida()
 {
    if(
cliente.text_rut.getText().equals("")||
       
cliente.text_nombre.getText().equals(""))
    { 
JOptionPane.showMessageDialog(this,"por favor llenar los campos");
    }
    return 
cliente;
 }


este error consigo cuando hago click en el boton ingresar
Código PHP:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Validaciones
.getValida(Validaciones.java:34)
    
at Cliente$1.actionPerformed(Cliente.java:152)
    
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    
at java.awt.Component.processMouseEvent(Component.java:6267)
    
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    
at java.awt.Component.processEvent(Component.java:6032)
    
at java.awt.Container.processEvent(Container.java:2041)
    
at java.awt.Component.dispatchEventImpl(Component.java:4630)
    
at java.awt.Container.dispatchEventImpl(Container.java:2099)
    
at java.awt.Component.dispatchEvent(Component.java:4460)
    
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
    
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    
at java.awt.Container.dispatchEventImpl(Container.java:2085)
    
at java.awt.Window.dispatchEventImpl(Window.java:2478)
    
at java.awt.Component.dispatchEvent(Component.java:4460)
    
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

  #2 (permalink)  
Antiguo 25/01/2011, 05:53
Avatar de pablor21  
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo - Uruguay
Mensajes: 197
Antigüedad: 15 años, 5 meses
Puntos: 13
Respuesta: Como pasar valores de Jtextfield para validarlos en otra clase

Hola, creo que tu problema es que nunca llegás a instanciar los textfields, o sea, vos hacés:

cliente.text_rut

pero text_rut está en null aún, ya que lo instanciás en el getter, cosa un poco rara, por qué no creas las instancias en el constructor?

Una cosa que no tiene nada que ver con tu problema, pero deberías leer un poquito más sobre convenciones de nombres de variables, métodos y métodos de acceso a los atributos de un objeto, se puede programar como tú lo haces, pero es mejor que se respeten las convenciones que ya existen.
__________________
Desarrolloador Freelance - http://www.mvdit.com.uy
  #3 (permalink)  
Antiguo 26/01/2011, 12:46
 
Fecha de Ingreso: mayo-2010
Mensajes: 57
Antigüedad: 13 años, 11 meses
Puntos: 1
Respuesta: Como pasar valores de Jtextfield para validarlos en otra clase

usa el JTextField.getText().Trim().Lenght() = la cantidad de caracters que hay en txt sin contar los espacios en blanco

Etiquetas: clase, jtextfield, pasar
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 10:50.