[java] JTable serialization werkt niet...

Pagina: 1
Acties:

  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
Ik wil over een ObjectOutputStream een JTable versturen, maar als ik em probeer te openen met een ObjectInputStream dan zegtie dat de versies niet compatibel zijn ofzo... erg vaag, aangezien ik ook al geen QueryResultModel kan versturen (zie eerdere topic over [java] Hoe krijg ik een ResultSet zsm in een Table ??)

edit:

Ik weet dat er op de Sun site staat dat "Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder. "

maar daar hebben ze het over "future releases"... op mijn machine die alleen maar 1.4 draait moet dit toch kunnen ??

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.
edit: ok, dat wist je dus.

Deze vragen lijken me nu nog relevanter: Wat wil je precies bereiken? Waar staat de db, waar is de driver, wat voor onderdelen heeft je applicatie? Misschien heb je iets aan de rmi-jdbc driver.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
ik ben een hele simpele applicatie aan hte schrijven om remote in je adresboek te komen. Ik wil overal ter wereld in kunnen loggen op dat ding en het moet snel zijn. Ik gebruik MySQL met JDBC en verstuur gewoon domweg een hele JTable over een ObjectOutputStream/ObjectInputStream. Ik wilde eigenlijk die QueryResultModel van jou versturen maar die gaf dezelfde error.

edit:

Liever niet met RMI, dat vind ik niet handig omdat je er ook nog een RMIRegistry bij moet hebben en omdat eht zo veel simpeler is. Een van de drie deugden van de programmeur is toch luiheid ??

  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
Op donderdag 15 november 2001 20:32 schreef mbravenboer het volgende:

[..]

edit: ok, dat wist je dus.
Jaaah, ik kijk de laatste tijd steeds meer in de API docs ;)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
MisterData: ik ben een hele simpele applicatie aan hte schrijven om remote in je adresboek te komen. Ik wil overal ter wereld in kunnen loggen op dat ding en het moet snel zijn. Ik gebruik MySQL met JDBC en verstuur gewoon domweg een hele JTable over een ObjectOutputStream/ObjectInputStream.
Waarom zou je een GUI component op deze manier willen transporteren? Ik zou proberen om de data te transporteren, niet de GUI...
Ik wilde eigenlijk die QueryResultModel van jou versturen maar die gaf dezelfde error.
Ook een model verstuur vind ik niet echt super (kan natuurlijk soms wel handig zijn). Heb je hem wel Serializable gemaakt? Er gebeuren daar niet veel gekke dingen, dus het model oversturen zou moeten werken....

Waarom niet via RMI werken bij je gedistribueerde applicaties? Op die manier kan heel fraai je data beschikbaar stellen aan clients en ook op een hele makkelijke manier gebruien vanuit je client.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
Ja, ik heb die QueryResultModel serializable gemaakt en ik heb ff gecheckt en die JTable is dus ook Serializable. Maar omdat datzelfde van die incompatibiliteit geldt voor een AbstractTableModel (en alles wat ervan is afgeleid) werkt dit dus niet.

over dat RMI :
- dan kan ik beter CORBA gebruiken
- ik hou het liefst gewoon SIMPEL...

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
MisterData: Ja, ik heb die QueryResultModel serializable gemaakt en ik heb ff gecheckt en die JTable is dus ook Serializable. Maar omdat datzelfde van die incompatibiliteit geldt voor een AbstractTableModel (en alles wat ervan is afgeleid) werkt dit dus niet.
Hum ja, dat zou kunnen... Anders moet je hem even zelf helemaal implementeren en de listeners transient maken... Je moet dan dus de interface TableModel implementeren en niet extenden van AbstractTableModel.
over dat RMI :
- dan kan ik beter CORBA gebruiken
- ik hou het liefst gewoon SIMPEL...
Hum ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
Jah ik weet het ik doe erg moeilijk over RMI enzo ;) misschien wordt het volgende progje van mijn hand wel in CORBA/RMI geschreven, maar nou ff niet :)

Ik zal es kijken wat ik met die Interface kan.
bah moet ik die hele QueryResultModel opnieuw gan schrijven... :r

edit:

ik hoef alleen maar het woordje extends te vervangen door implements dan werkt het al dus zoveel moeite is het niet :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
MisterData: Jah ik weet het ik doe erg moeilijk over RMI enzo ;) misschien wordt het volgende progje van mijn hand wel in CORBA/RMI geschreven, maar nou ff niet :)
RMI is erg makkelijk. Het vraagt even wat tijd om te bestuderen, maar de opzet is echt trivaal. CORBA is een stuk ingewikkelder. RMI-IIOP is uiteraard weer makkelijk.
ik hoef alleen maar het woordje extends te vervangen door implements dan werkt het al dus zoveel moeite is het niet :)
Mwah, je moet nog wel wat implementeren hoor...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
Ja ik zie het :) ik heb btw al de tutorial over RMI doorgelezen en het ziet er simpel uit, dus ik ga er morgen ofzo eens mee experimenteren. iig bdnkt :)

  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
OK dit is dus raar...

ik heb die TableModel zover gekregen dat ie verstuurbaar is, maar dan kan ik em weer niet toepassen op de JTable in de client applicatie... ik krijg deze exception :
Executing query
Request column 0
Request column 1
Query took 2003 miliseconds.
Exception occurred during event dispatching:
java.lang.NullPointerException
at javax.swing.JTable.prepareRenderer(JTable.java:3537)
at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:995)
at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:917)

at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:858)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:39)
at javax.swing.JComponent.paintComponent(JComponent.java:398)
at javax.swing.JComponent.paint(JComponent.java:739)
at javax.swing.JComponent.paintChildren(JComponent.java:523)
at javax.swing.JComponent.paint(JComponent.java:748)
at javax.swing.JViewport.paint(JViewport.java:668)
at javax.swing.JComponent.paintChildren(JComponent.java:523)
at javax.swing.JComponent.paint(JComponent.java:748)
at javax.swing.JComponent.paintWithBuffer(JComponent.java:4393)
at javax.swing.JComponent._paintImmediately(JComponent.java:4336)
at javax.swing.JComponent.paintImmediately(JComponent.java:4187)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:370)

at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(System
EventQueueUtilities.java:205)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:154)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:334)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:134)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:96)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:88)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hum. jij gebruikt een andere Java 2 SDK versie dan ik, want die regel komt niet overheen met de methode die aangegeven staat... Kan dus ook niet echt iets achterhalen zonder je code te zien.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
Ik zal het zo es proberen met de J2SE 1.3 en dan post ik daar wel de stacktrace van.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik gebruik 1.4.0 beta 3, alleen dan kan ik de code vergelijken.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
OK. ik heb nu het hele progje weer veranderd en heb net een poging gedaan om een ResultSet te versturen... maar die is dus niet serializable !!! Dus die QueryResultModel moet ik wel gebruiken om data te versturen, maar dat werkt dus niet :( Ik zal dadelijk ff de source op mijn server zetten en dan post ik hier wel een linkje :+

  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
De source bestanden staan op de volgende plekjes :

http://www.vandervorst-bs.nl/centers/javasource/

alles wat begint met JDB heeft met dit gedoe te maken.
Pagina: 1