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ú

Temas - mgc

#1
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.
#2
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));
#3
Java / Filtro en J2ME
26 Febrero 2015, 10:37 AM
Hola,
Tengo que buscar un cliente determinado en un RecordStore, y lo quiero hacer con un filtro así:

import javax.microedition.rms.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;

public class ExampleSearch
{

private RecordStore recordstore = null;
private RecordEnumeration recordEnum= null;
private Filter filter = null;

// get the record store
public void getRecStore(){
recordstore= RecordStore.openRecordStore("myRec",true);
}
//
public boolean login(String userName,String password){
getRecStore();
filter = new Filter(userName+"#"+password); // create a filter on the search text
recordEnum= recordstore.enumerateRecords(filter, null, false);
if (recordEnum.numRecords() > 0)
{
return true;
}else{
return false;
}
}

}


/*
*    This class is used as a filter for this example which is exetnding the RecordFilter
*
*
*/
class Filter implements RecordFilter{
private String search = null;
private ByteArrayInputStream inputstream = null;
private DataInputStream datainputstream = null;
public Filter(String search)
{
this.search = search.toLowerCase();
}
public boolean matches(byte[] suspect)
{
String string = new String(suspect).toLowerCase();
if (string!= null && string.indexOf(search) != -1)
return true;
else
return false;
}
public void filterClose()
{
try
{
if (inputstream != null)
{
inputstream.close();
}
if (datainputstream != null)
{
datainputstream.close();
}
}
catch ( Exception error)
{
}
}
}


Lo que no se, es cómo llevarlo a cabo, porque si utilizo el método public boolean login(String userName,String password), me devuelve true, pero yo lo que quiero mostrar es el detalle de los datos del cliente.
¿Alguien me puede decir cómo hacerlo?

Gracias de antemano y un saludo.
#4
Hola,

Estoy probando mi primer ejemplo en jasperReport, pero al ejecutar el archivo .java me da el siguiente error:

nov 14, 2014 1:30:35 PM net.sf.jasperreports.engine.xml.JRBandFactory createObject
Advertencia: The 'isSplitAllowed' attribute is deprecated. Use the 'splitType' attribute instead.
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Byte no válido 1 de la secuencia UTF-8 de 1 bytes

El código del archivo HolaMundo.jrxml es este:
<?xml version="1.0"   ?>
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN"
   "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

<jasperReport name="200">
   <detail>
       <band height="200">
           <staticText>
                   <reportElement x="0" y="0" width="500" height="20"/>
                   <text><![CDATA[Informe ¡Hola Mundo!]]></text>
           </staticText>
       </band>
   </detail>
</jasperReport>


El código de Main.java es este:
public class Main {

   /**
    * @param args the command line arguments
    */
   public static void main(String[] args) {
       // TODO code application logic here
       String reportSource="./reports/templates/HolaMundo.jrxml";
String reportDest="./reports/results/HolaMundo.html";

Map <String, Object> params=new HashMap <String, Object>();

try

{
JasperReport jasperReport=JasperCompileManager.compileReport(reportSource);

JasperPrint jasperPrint=JasperFillManager.fillReport(
jasperReport, params, new JREmptyDataSource());

JasperExportManager.exportReportToHtmlFile(
jasperPrint, reportDest);

JasperViewer.viewReport(jasperPrint);
}
catch (JRException ex)
{
System.out.println(ex.getMessage());
}

   }
   
}


He quitado el caracter ¡, pero sigue sin generarme el informe. No se muy bien qué es lo que sucede.
Espero que me podáis ayudar, gracias de antemano.

Saludos
#5
Hola!!!
Estoy creando una aplicación y tengo que ponerle un fondo a la ventana principal, según los apuntes debo hacerlo asociándola a una etiqueta en Propiedades/Icon, y hacer que esta ocupe todo el fondo de la aplicación. Hasta aquí todo bien, pero quiero añadir un botón en esta ventana principal, y me lo desplaza a una zona fuera de la etiqueta, no puedo ponerlo sobre ella.
Mi intención es que quedase de forma parecida a esto:


¿Alguien me da una idea?

Gracias de antemano y saludos.
#6
Java / JDateChooser
16 Mayo 2014, 14:39 PM
Muy buenas,

Quería preguntarles una curiosidad ¿hay alguna manera de desactivar el cuadro de texto de un JDateChooser? Que solo se tenga la posibilidad de introducir la fecha mediante el calendario y no manualmente.

Me sería de gran utilidad para evitar que el usuario introduzca un formato de fecha incorrecto.

Gracias por adelantado y un saludo.
#7
Java / TreeSet invertir su orden natural
15 Abril 2014, 19:53 PM
Buenas,

Tengo la siguiente duda, yo tengo una colección TreeSet y quería que me mostrase los elementos en el orden inverso de los que lo ordena.

El profesor me ha comentado que podría utilizar la interfaz comparator, creando una clase para comparar los elementos. El problema es que el método para comparar es para listas, por lo tanto no me vale.

Yo he elegido TreeSet porque un requisito del enunciado del problema, dice que los elementos no pueden estar duplicados.

En resumen es que no sé cómo hacerlo de ninguna de las maneras, a ver si alguien me puede ayudar. :huh:

Gracias de antemano y saludos.
#8
Java / Problemilla con un patrón
11 Abril 2014, 13:47 PM
Muy buenas,

He realizado mi primera aplicación aplicando patrones a unas entradas de texto y resulta que uno de ellos me está dando la lata.

Pattern pNombre=Pattern.compile("[\"][A-Za-z]+[\"]");

Este patrón lo aplico para la entrada de nombre, que debe ir entre comillas e indico que puede ser más de uno (por ejemplo un nombre compuesto Juan Antonio), pues el problemas es que no me admite dos nombres, con uno va perfecto pero al incluirle otro me da error.

¿Alguno de vosotros me podría indicar a que puede ser debido? Debe ser alguna simpleza pero no doy con ella.

Muchas gracias de antemano y saludos.
#9
Java / RadioButton
8 Marzo 2014, 19:12 PM
Hola!


Quería hacer una consulta, es la primera vez que estoy trabajando con swing. Tengo que crear una aplicación que guarda datos de personas. Una variable del objeto personas es de tipo boolean, en el panel he colocado un radioButton para indicar si está casado o no. Lo que quería saber es como recojo el valor de esa variable. Para las variables que están almacenadas en texto lo hago a través del método getTex(), pero para radioButton no se que método utilizar.

Muchas gracias de antemano.

Saludos
#10
Java / √ x = en Java
22 Noviembre 2013, 08:30 AM
Hola,
¿hay alguna forma de poner el símbolo de la raiz cuadrada (√ )en un texto Java?
Es un texto para que salga en pantalla, sería una cosa así:
System.out.println("√ x ="+Math.sqrt(x));

Saludos
#11
Java / importar libreria de java
21 Noviembre 2013, 17:44 PM
Hola a tod@s,

soy una novata en esto de la programación, estoy haciendo un ciclo sobre programación. Estoy intentando importar la libreria Scanner de java pero cuando la importo me dice que el paquete es defectuso. He estado buscando pero no encuentro nada al respecto, a ver si alguien puede ayudarme.
Adjunto un pantallazo donde se puede ver el mensaje.
Gracias de antemano, un saludo.