Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - mgc

#1
Java / Re: Exception al rellenar un JList
15 Noviembre 2015, 23:39 PM
Hola, puede parecer que no está inicializado, pero no es así, pues en el main de la aplicación le asigno a cada una de las ventanas a miCoordinador.

De esta forma está en todas las ventanas y funciona, yo en este caso veo algo relacionado con la lista, que además apunta la excepción.

Muchas gracias de todas formas por las molestias que te estás tomando.

Saludos
#2
Java / Re: Exception al rellenar un JList
15 Noviembre 2015, 17:28 PM
Eso he hecho, pero me sigue saltando la excepción NullPointerException.
Ahora tengo el código de la siguiente manera:

public class VentanaExplotaciones extends javax.swing.JDialog {
    private Coordinador miCoordinador;
    DefaultListModel modeloExplotaciones;
    ArrayList <ExplotacionesVo> miLista=new ArrayList <ExplotacionesVo>();
   

    /**
     * Creates new form VentanaExplotaciones
     */
    public VentanaExplotaciones(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        setIconImage(new ImageIcon(getClass().getResource("../imagenes/logotipoG24x24.png")).getImage());
       modeloExplotaciones=new DefaultListModel();
       
        miLista.add(miCoordinador.consultarExplotaciones());
        for(int i=0; i<miLista.size();i++){
        modeloExplotaciones.addElement(miLista.get(i).getCodigo());
        }
       
        jListaExpl.setModel(modeloExplotaciones);
       
     
    }


Me apunta a esta línea:

miLista.add(miCoordinador.consultarExplotaciones());

miCoordinador.consultarExplotaciones me devuelve objetos de tipo ExplotacionesVo

#3
Java / Re: Exception al rellenar un JList
15 Noviembre 2015, 14:40 PM
Hola,

En el caso de Conexión es una clase propia mia, si pongo :

List miLista=new List();

Debo sobreescribir todos los métodos de la clase List.

No sé muy bien cómo debería hacer esto que me dices, si me ayudas te lo agradezco.

Saludos
#4
Java / Re: Exception al rellenar un JList
14 Noviembre 2015, 21:16 PM
Hola,

Si te fijas en el método consultarExplotaciones, dentro del while, una vez que asigna los valores a cada uno de los atributos al objeto, luego añado el objeto a la propia lista:

miLista.add(miExplotacion);

Gracias por tu respuesta.

Saludos
#5
Java / Exception al rellenar un JList
14 Noviembre 2015, 18:29 PM
Hola,

Tengo un problema al intentar rellenar un JList en swing, este método es el que utilizo para llenar la lista:

private void llenarLista(List lista) {
         DefaultListModel model = new DefaultListModel();
        for(int i=0; i<lista.size(); i++){
            model.addElement(lista.get(i));
        }
        listaExplotaciones.setModel(model);
    }


He puesto un botón en la pantalla, y su acción va a ser llenar el JList:

List lista=miCoordinador.consultarExplotaciones("user2");
        llenarLista(lista);


La lista es una consulta que se realiza en la clase objeto, el método es el siguiente:

public List consultarExplotaciones(String usuario) {
                List miLista=null;
Connection connection=null;
Conexion miConexion=new Conexion();
PreparedStatement statement=null;
ResultSet result=null;

ExplotacionesVo miExplotacion=new ExplotacionesVo();

connection=miConexion.getConnection();

String consulta="SELECT * FROM T_EXPLOTACIONES where USUARIO= ?";

try {
if (connection!=null) {
statement=connection.prepareStatement(consulta);
statement.setString(1, usuario);

result=statement.executeQuery();

while(result.next()==true){
miExplotacion=new ExplotacionesVo();
miExplotacion.setUsuario(result.getString("USUARIO"));
miExplotacion.setCodigo(result.getString("CODIGO"));
miExplotacion.setEspecie(result.getString("ESPECIE"));
miExplotacion.setTitular(result.getString("TITULAR"));
miExplotacion.setDireccion(result.getString("DIRECCION"));
miExplotacion.setLocalidad(result.getString("LOCALIDAD"));
miExplotacion.setCodigoPostal(result.getString("CODIGO_POSTAL"));
miExplotacion.setProvincia(result.getString("PROVINCIA"));
miExplotacion.setTelefono(result.getString("TELEFONO"));
                                        miLista.add(miExplotacion);
}
   miConexion.desconectar();
}else{
miLista=null;
}

   
} catch (SQLException e) {
System.out.println("Error en la consulta de la explotación: "+e.getMessage());
}

return miLista;
}


Cuando pulso el botón, me da la siguiente excepción:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at vista.VentanaExplotaciones.llenarLista(VentanaExplotaciones.java:254)
at vista.VentanaExplotaciones.btnLlenarActionPerformed(VentanaExplotaciones.java:222)
at vista.VentanaExplotaciones.access$000(VentanaExplotaciones.java:15)
at vista.VentanaExplotaciones$2.actionPerformed(VentanaExplotaciones.java:99)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
at java.awt.Dialog.show(Dialog.java:1082)
at java.awt.Component.show(Component.java:1651)
at java.awt.Component.setVisible(Component.java:1603)
at java.awt.Window.setVisible(Window.java:1014)
at java.awt.Dialog.setVisible(Dialog.java:1005)
at controlador.Coordinador.mostrarVentanaExplotaciones(Coordinador.java:87)
at vista.VentanaInicio.btnExplotacionesActionPerformed(VentanaInicio.java:102)
at vista.VentanaInicio.access$000(VentanaInicio.java:22)
at vista.VentanaInicio$1.actionPerformed(VentanaInicio.java:65)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)



La línea 254 es esta:
model.addElement(lista.get(i));

¿Alguien sabe que es lo que me puede estar fallando?

Muchas gracias de antemano, saludos.
#6
Hola,
sigo con problemas en mi aplicación j2me. Estoy intentando eliminar un registro del RecordStore del cual desconozco su id.
Los registros de mi RecordStore están compuesto por nombre:password, en este caso yo conozco el nombre.
El método es el siguiente:

Código (java) [Seleccionar]
public void eliminarCliente(String name) throws RecordStoreException {
       
       try {
           almacen = RecordStore.openRecordStore("Clientes", true);
           enumeracion = almacen.enumerateRecords(null, null, true);
           int clients = 0;
           

           while (enumeracion.hasNextElement()) {
               int id=enumeracion.nextRecordId();
               String client = new String(enumeracion.nextRecord());
               int separator = client.indexOf(":");
               String username = client.substring(0, separator);
               if (username.equals(name)) {
                   
                   almacen.deleteRecord(id);
               }
               clients++;
           }

       } catch (RecordStoreException ex) {
           ex.printStackTrace();
       } finally {
           almacen.closeRecordStore();
       }
     
   }

Al ejecutarlo me lanza la excepción InvalidRecordIDException.

Ya está resuelto, dejo aquí la solución por si alguien tuviese el mismo problema.

Para formar el registro sería de esta manera:

Código (java) [Seleccionar]
String client = new String(almacen.getRecord(id));
#7
Java / Re: Filtro en J2ME
26 Febrero 2015, 17:44 PM
Muchas gracias por todo, yo creo que si está resuelto, ahora me queda ponerlo todo en su sitio y que funcione... Estoy iniciándome en esto, y todo me cuesta un mundo.

Saludos.
#8
Java / Re: Filtro en J2ME
26 Febrero 2015, 17:26 PM
Tras hacer los cambios este sería el código,
Utilizo un método para devolver el nombre y otro para devolver el password, que debo insertarlos en campos diferentes en el display.

¿Cómo lo ves?

    public String getClientPass(String name) throws RecordStoreException {
        String pass="";
        try {
            almacen = RecordStore.openRecordStore("Clientes", true);
            enumeracion = almacen.enumerateRecords(null, null, true);
            int clients = 0;

            while (enumeracion.hasNextElement()) {
                // int id=enumeracion.nextRecordId();
                String client = new String(enumeracion.nextRecord());
                int separator = client.indexOf(":");
                String username = client.substring(0, separator);
                String password = client.substring(separator + 1);
                //String[] clientData = client.split(":");
                if (username.equals(name)) {
                    // muestras los detalles del cliente
                    pass = password;
                }
                clients++;
            }

        } catch (RecordStoreException ex) {
            ex.printStackTrace();
        } finally {
            almacen.closeRecordStore();
        }
        return pass;
    }
#9
Java / Re: Filtro en J2ME
26 Febrero 2015, 17:02 PM
¿Es posible que split no se pueda utilizar en j2me?
Te adjunto captura.



Muchas gracias, saludos.
#10
Java / Re: Filtro en J2ME
26 Febrero 2015, 15:42 PM
Te especifico algo más mi caso, porque yo las consultas no las hago a una base de datos, si no al propio RecordStore que es quien me almacena los registros.
Cada registro del RecordStore, será un cliente con su nombre y password.
Los clientes los muestro en una lista por su nombre, y seleccionándolos puedo ver el detalle (nombre y contraseña).
El constructor de la clase sería:
public bdClientes(String nombre){
       super(nombre,List.IMPLICIT);
   }


Cada registro tendrá será un String de esta forma nombre:password
El método que muestra la lista por pantalla sería este:
public void listarClientes(){
       //super.deleteAll();
       try {
           almacen= RecordStore.openRecordStore("Clientes", true);
           enumeracion=almacen.enumerateRecords(null, null, true);
           int numRegistros=0;
           
           //recorremos los registros con el enumerador
           while(enumeracion.hasNextElement()){
              // int id=enumeracion.nextRecordId();
               String registro=new String(enumeracion.nextRecord());
               numRegistros++;

               int separador=registro.indexOf(":");

               String nombre=registro.substring(0, separador);

               String password=registro.substring(separador+1);

               super.append(nombre, null);
           }
         
           //cerramos el almacen de registros
           almacen.closeRecordStore();
       } catch (RecordStoreException ex) {
           ex.printStackTrace();
       }
   }


Lo que quiero es mostrar los datos del Cliente seleccionado de esta lista.

El registro seleccionado de la lista sería este:

String registroLista=super.getString(super.getSelectedIndex());


Mi idea es buscar en el RecordStore el registro que coincide con registroLista.

Espero que esté claro al menos, mis intenciones. Mi problema es que no se llevar a cabo el Filter, en este caso.

Gracias y saludos.