Personal tools
You are here: Home Forum Nice Office Access (NOA) CALC-Dokument in Swing einbinden

 • CALC-Dokument in Swing einbinden

Replies: 8   Views: 192
Up one level

 • CALC-Dokument in Swing einbinden

Posted by heyho at 2010-02-16 18:50:41
Hallo,

nachdem ich einige Zeit versucht hatte, eine Datenbankapplikation mit OOo Base zu entwickeln, hab ich das nun genervt abgebrochen und entwickle das Projekt in Java. Dabei bin ich auf NOA gestossen. Nun möchte ich gerne versuchen, in die Java-Anwendung (Swing) ein CALC-Dokument in ein JPanel einzubetten. Jetzt wollte ich hier im Forum mal fragen, ob dies überhaupt grundsätzlich möglich ist, oder ob ich aus der Java-Anwendung heraus ein CALC-Dokument nur öffnen kann? Ich bräuchte nämlich aus diesem CALC-Dokument einen berechneten Wert aus einer Zelle, die in meiner Java-Anwendung weiterverarbeitet wird.

Viele Grüsse
Jürgen
heyho Member
Posts: 6

 • Re: CALC-Dokument in Swing einbinden

Posted by heyho at 2010-02-16 18:52:48
Ergänzung: Hab noch vergessen, zu erwähnen, dass ich OpenOffice 3.1.1 unter Debian 5.0 verwende.

Viele Grüsse
Jürgen
heyho Member
Posts: 6

 • Re: CALC-Dokument in Swing einbinden

Posted by Markus Krueger at 2010-02-18 10:03:27
Hallo Jürgen,

anbei ein kleines Beispiel.

Gruß,

Markus
Markus Krueger Manager
Posts: 507

 • Re: CALC-Dokument in Swing einbinden

Posted by heyho at 2010-02-19 16:27:52
Hallo Markus,

danke für das kleine Beispiel. Es funktioniert, aber ich hab trotzdem noch ein paar (kleine) Probleme bzw. Fragen.

1.) Es dauert ziemlich lange, bis das CALC-Dokument in der Java-Anwendung erscheint. So etwa 30 Sekunden, würde ich mal schätzen. Ich hab auch versucht, vorher OOo zu starten (ein neues Writer-Dokument), aber es hat trotzdem so lange gedauert. Gibt es da eine Möglichkeit, dies zu beschleunigen?

2.) Als ich die Java-Anwendung geschlossen hatte, war das vorher geöffnete Writer-Dokument ebenfalls weg, also OOo komplett beendet. Kann ich es so hinkriegen, dass beim Beenden der Java-Anwendung nur das eine CALC-Dokument geschlossen wird und nicht die ganze OOo?

3.) Es gibt wohl einige Probleme mit der grafischen Darstellung innerhalb der Java-Anwendung. Wenn ich die Grösse des Frames verändere (an den Rändern mit der Maus anfasse und verschiebe), dann flackert das CALC-Dokument ganz schön. Wenn ich auf die Titelleiste des Java-Frames doppelklicke, um den Frame auf die maximale Grösse zu bringen, dann ist das CALC-Dokument zum Teil abgeschnitten, und erst wenn ich wieder die Grösse des Frames ändere, verschwindet dieser abgeschnittene Bereich. Ich vermute mal, dies hat etwas mit dem (Neu-)Zeichnen des Panels/Frames in Java zu tun. Ist das auch noch wem anderes aufgefallen und bekannt? Und weiss wer, wie ich das verhindern kann?

Ansonsten erst mal danke für die Unterstützung. Ich werde da noch weiter dran arbeiten und testen...

Viele Grüsse
Jürgen
heyho Member
Posts: 6

 • Re: CALC-Dokument in Swing einbinden

Posted by Markus Krueger at 2010-02-22 08:59:02
Hallo Jürgen,

hab nochmal die SimpleApp.java attached.

1.) Die lange Ladezeit sollte nur beim öffnen des ersten Dokumentes passieren. Ich hab mal in der SimpleApp einen Button zum laden eines Zweiten Docs eingebaut. Dies sollte dann schnell gehen. Ansonsten kannst du im netz mal nach "OpenOffice schneller starten" oder so suchen. Gibt da wohl diverse Einstellungen

2.)In der SimpleApp wird jetzt nicht mehr OOo geschlossen.

3.) Da kann ich leider nichts zu sagen.

Gruß,
Markus
Markus Krueger Manager
Posts: 507

 • Re: CALC-Dokument in Swing einbinden

Posted by heyho at 2010-02-24 18:31:21
Hallo Markus,

vielen Dank für die Hilfe. Ich werde mir das demnächst nochmal genauer anschauen. Hab leider gerade nicht so viel Zeit dafür, da ich mich mit anderen Programmteilen beschäftigen muss. Zu dem 3. Punkt werde ich mal im Java-Forum nachfragen und dann hier Bescheid sagen, wenn es dafür eine Lösung geben sollte.

Gruss
Jürgen
heyho Member
Posts: 6

 • Re: CALC-Dokument in Swing einbinden

Posted by heyho at 2010-02-25 11:28:51
Hallo Markus,

ich hab das jetzt mal getestet. Ich musste im Java-Code an zwei Stellen den Pfad zum lib-Verzeichnis anpassen (da ich mit Linux arbeite):

System.getProperty("user.dir";) + "/lib"

anstatt

System.getProperty("user.dir";) + "\\lib";);


Ich hoffe mal, dass dies die einzigen Änderungen waren, die ich vornehmen musste.

Wenn ich jetzt auf den Button für das neue Dokument klicke, werde ich gefragt, ob ich das bestehende Dokument speichern oder verwerfen möchte. Soweit OK. Wenn ich dann aber nun eine neues Dokument in der Java-Anwendung habe, dann kann ich dort nichts in die Zellen reinschreiben. Es ist wie, als ob die Zellen gesperrt wären und keine Eingabe annehmen.

Eine weitere Frage von mir wäre noch, wie muss ich den Java-Code abändern, damit ich ein bestehendes Calc-Dokument öffnen kann, anstatt ein neues (leeres)?

Viele Grüsse
Jürgen
heyho Member
Posts: 6

 • Re: CALC-Dokument in Swing einbinden

Posted by heyho at 2010-02-25 15:57:23
Hallo,

ich hab gerade versucht, den Java-Code (SimpleApp) ohne den JFrame in meine Swing-Anwendung einzubauen, bekomme dann aber die Fehlermeldung: can't lock the drawing surface.

Was bedeutet diese Meldung?
heyho Member
Posts: 6

 • Re: CALC-Dokument in Swing einbinden

Posted by Markus Krueger at 2010-03-04 12:27:21
"Wenn ich jetzt auf den Button für das neue Dokument klicke, 
werde ich gefragt, ob ich das bestehende Dokument speichern 
oder verwerfen möchte. Soweit OK. Wenn ich dann aber nun eine 
neues Dokument in der Java-Anwendung habe, dann kann ich dort 
nichts in die Zellen reinschreiben. Es ist wie, als ob die Zellen 
gesperrt wären und keine Eingabe annehmen."
Hmm, dieses Problem tritt bei uns unter Windows leider nicht auf, weder beim Speichern, noch beim Verwerfen. Arbeitest du mit GNOME, ich meine da gab es auch mal so Probleme.
"Eine weitere Frage von mir wäre noch, wie muss ich den Java-Code 
abändern, damit ich ein bestehendes Calc-Dokument öffnen kann, 
anstatt ein neues (leeres)? "
Dies kannst du mit folgendem Aufruf:
officeApplication.getDocumentService().loadDocument(officeFrame, "p:/dein pfad/test.ods", DocumentDescriptor.DEFAULT)
"ich hab gerade versucht, den Java-Code (SimpleApp) ohne
 den JFrame in meine Swing-Anwendung einzubauen, bekomme 
dann aber die Fehlermeldung: can't lock the drawing 
surface."
Hmm, das kommt mir leider auch unbekannt vor, evtl. hat ja jemand anders eine Idee. Gruß, Markus
Markus Krueger Manager
Posts: 507

Powered by Plone, the Open Source Content Management System

This site conforms to the following standards: