• 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 |
• 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 |
• 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" anstatt System.getProperty("user.dir" 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 |


