Código:
abajo coloco mis dos codigos y escribi comentario en donde llamo a la funcion de la clase Validaciones.Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
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();
}
}
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;
}
}
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)
>