SoloCodigo

Programación General => Java => Mensaje iniciado por: turicuen en Domingo 10 de Agosto de 2008, 17:51

Título: Insertar objetos de una clase dentro de un fichero
Publicado por: turicuen en Domingo 10 de Agosto de 2008, 17:51
A las buenas, me gustaria guardar objetos de una clase dentro de un fichero.


Código: Text
  1.  
  2.  
  3. public static void escribir(){
  4.        Cliente [] clientes= new Cliente[2];
  5.        clientes[1]=new Cliente("Juan Hernandez ");
  6.        clientes[2]=new Cliente("Sergio Ruiz");
  7.        try{
  8.             ObjectOutputStream ous = new ObjectOutputStream(new FileOutputStream(f));
  9.            for(int i=0;i<2;i++){
  10.                ous.writeObject(clientes[i]);
  11.                 }//fin del for
  12.         }//fin del try
  13.        catch(FileNotFoundException e){
  14.            System.out.println("FileNotFoundException"+ e);
  15.        }
  16.        catch(IOException e){
  17.            System.out.println("IOException"+e);
  18.        }
  19.     }
  20.  

El problema que tengo es que no me deja me dice que ObjetOutpuStream no es static.

Alguien sabe como podria resolverlo o como puedo pasar objetos de una clase a un fichero.
Título: Re: Insertar objetos de una clase dentro de un fichero
Publicado por: manix en Domingo 10 de Agosto de 2008, 21:09
Entonces no declara el metodo estatico y dejalo asi:
Código: Java
  1. public void escribir(){
  2.  

saludos
Título: Re: Insertar objetos de una clase dentro de un fichero
Publicado por: turicuen en Domingo 10 de Agosto de 2008, 23:59
Lo primero gracias por contestarme, pero ya lo hice, y entonces me salieron un monton de errores,
Citar
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Código: Text
  1.  at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
  2.         at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
  3.         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
  4.         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
  5.         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
  6.         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
  7.         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
  8.         at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
  9.  
  10.  

El problema es que no se porque salen los errores.
Título: Re: Insertar objetos de una clase dentro de un fichero
Publicado por: shadow_rev en Lunes 11 de Agosto de 2008, 17:16
Echando un rápido vistazo a tu código me he dado cuenta de que en las líneas de la 4 a la 6, declaras un array de 2 posiciones y guardas objetos de tipo Cliente en las posiciones 1 y 2. Deberías de guardarlos en las posiciones 0 y 1, ya que el bucle que haces más abajo (en la línea 9), busca el índice 0 del array y te puede disparar el error.

:suerte:
Título: Re: Insertar objetos de una clase dentro de un fichero
Publicado por: turicuen en Lunes 11 de Agosto de 2008, 23:33
Ya esta solucionado!!! El verdadero problema residia en que tenia que hacer un cast de aux (que estaba definido como un objeto) a un objeto de la clase persona!!!. Y si por supuesto el array estaba mal definido, no era de 1-2, sino de 0-1.


Ahora tengo una duda, como puedo invocar un Jdialog desde un JFrame, es decir tengo un JFrame con un JButton y quiero que al pinchar uno de los botones me muestre el Jdialog. Ya se que es
Código: Text
  1. void JBotton1(java.awt.event.MouseEvent evt) {
  2. }
  3.  

Pero que es lo que tiene que ir dentro de esa funcion.
Título: Re: Insertar objetos de una clase dentro de un fichero
Publicado por: shadow_rev en Martes 12 de Agosto de 2008, 20:12
A la instancia del JDialog le das la orden setVisible(true):
Código: Text
  1. //...
  2. objeto_jdialog.setVisible(true);
  3. //...
  4.  
Si lo quieres cerrar, es lo mismo pero con false

:suerte:
Título: Re: Insertar objetos de una clase dentro de un fichero
Publicado por: chuidiang en Jueves 14 de Agosto de 2008, 12:37
Hola:

Salvo que quieras que se abra la ventana con algún evento raro (click con el botón derecho, doble click, etc) lo normal es usar button.addActionListener (ActionListener).
Aquí tienes un ejemplo de cómo abrir un JDialog desde un JFrame (http://www.chuidiang.com/chuwiki/index.php?title=JFrame_y_JDialog#Abrir_y_cerrar_ventanas_secundarias_.28JDialog.29_desde_la_primaria_.28JFrame.29).

Se bueno.
Título: Re: Insertar objetos de una clase dentro de un fichero
Publicado por: turicuen en Viernes 15 de Agosto de 2008, 00:16
Solucionado, ahora mi problema es que al cerrar el jFrame que acabo de invocar me cierra toda la aplicacion.
Título: Re: Insertar objetos de una clase dentro de un fichero
Publicado por: chuidiang en Viernes 15 de Agosto de 2008, 08:48
Hola:

Al JFrame llama a su metodo frame.setDefaultCloseOperation() y como parámetro pásale la constante que quieras de la clase WindowConstants, por ejemplo WindowConstants.HIDE_ON_CLOSE para hacer que se oculte.

Se bueno.
Título: Re: Insertar objetos de una clase dentro de un fichero
Publicado por: turicuen en Viernes 15 de Agosto de 2008, 12:27
Gracias otra vez por la respuesta y sobre todo por la rapidez. Gracias!!!
Título: Re: Insertar objetos de una clase dentro de un fichero
Publicado por: turicuen en Viernes 15 de Agosto de 2008, 18:42
Ahora tengo un problemilla con un jTable, quiero cambiar el color de una celda o de una fila, mejor si puede ser de una fila.
No me da error pero tampoco hace nada. Como puedo cambiar el color de una celda o una fila segun el valor de result.getString(2)

Código: Text
  1. public void free(){
  2.         try {
  3.             sentens = conectar.createStatement();
  4.             result = sentens.executeQuery("select * from base");
  5.             while (result.next()) {            
  6.                if( 1==(Integer.parseInt(result.getString(2)))){                
  7.                           setBackground(Color.GREEN);
  8.                           }//fin if
  9.                else{
  10.                           setBackground(Color.RED);
  11.                     }  //fin else              
  12.                }//fin while
  13.           } //fin try
  14.          catch (Exception error) {
  15.            } //fin catch        
  16.     }
  17.  
Título: Re: Insertar objetos de una clase dentro de un fichero
Publicado por: chuidiang en Sábado 16 de Agosto de 2008, 08:54
Hola:

Aquí tienes un ejemplo de cómo cambiar los colores de fondo de una celda de un JTable (http://www.chuidiang.com/chuwiki/index.php?title=JTable:_Cambiar_los_colores_de_las_celdas). Para cambiar la fila, tendrás que cambiar las celdas de dicha fila de una en una.

Se bueno.
Título: Re: Insertar objetos de una clase dentro de un fichero
Publicado por: turicuen en Martes 19 de Agosto de 2008, 09:10
Gracias a todos por vuestras repuestas, pero ahora si que necesito de vosotros mas ayuda que nunca.
A ver ayer estaba terminando el proyecto con netbeans cuando se fue la luz!!! Pues bien ahora cualquier cambio o modificación que haga en mi proyecto no se muestra!!!. Si yo cambio el codigo cuando compilo me sigue compilando lo mismo. Lo mismo!!! No me hace ningun cambio!!. He probado a desinstalar y volver a instalar netbeans, he probado en otro ordenador y sigue igual. Que puedo hacer???? Ayuda!!!!