Dokumente in Editoren

Status
Nicht offen für weitere Antworten.

Sunchezz

Bekanntes Mitglied
Moin Leuts...

stehe momentan vor dem Problem das ich dokumente in meinem Programm bearbeiten will. allerdings sollten die schon nen bisschen besser aussehen als nur nen bisschen text... Das solln mal professionelle rechnungen mit kopfzeile und logo und sowas werden. Deshalb meine Frage wie man sowas am besten umsetzen kann! meine erste überlegung war ein word .doc als vorlage zu benutzen und dann nur noch die fehlenden infos einzusetzen, aber da weiß ich auch nich wie ich ein .doc in zum beispiel ein jEditorPane original einfüge.

danke schonmal für Ideen und vorschläge.
 

Sunchezz

Bekanntes Mitglied
nein, handelt sich nicht um eine Web-App. aber danke!

und wie war das mit OpenOffice.org? was muss man da machen? ich werd vosichtshalber einfach mal googln...
 

Wildcard

Top Contributor
OpenOffice.org hat eine 'Office Bean'. Damit lässt sich der Editor in ein einfaches Panel integrieren.
 

Sunchezz

Bekanntes Mitglied
ok... hab jetzt ne weile gegooglt um das Paket zu finden, steht auch überall en ganze menge, aber nirgends wie man da ran kommt -.-

kann mir da vielleicht einer nen Link geben und mir ungefähr sagen wie man das teil in eine App einbindet??
 

Wildcard

Top Contributor
Im Download sind Snippets enthalten (zumindest im Source paket, bei binär bin ich nicht sicher).
 

Sunchezz

Bekanntes Mitglied
achso, also das Bean paket is in der normalen OfficeDownload-Version mit drinne oder was?
ich dachte man kann das irgendwo einzeln runter laden...

muss dann auf dem zielrechner des Programms auch open Office installiert sein??
 

Wildcard

Top Contributor
Die Bean ist in einer OOo Standard Installation enthalten, aber du brauchst die UNO Bibliotheken zur kommunikation (enthalten im verlinkten NOA Paket). OOo muss nicht installiert sein, die Binaries reichen, und du kannst sie mit deinem Programm ausliefern wenn du möchtest.
 

Sunchezz

Bekanntes Mitglied
ok... ich hab mir jetzt das ganze zeug runter geladen, aber das is für mich als anfänger jetzt doch etwas viel auf einmal gewesen. Irgendwie hab ich kein Plan was ich jetzt wie machen muss um da nen laufenden Editor auf ein Panel zu bekommen -.-


und nur mal so ganz am rande: kann ich dokumente die ich damit in meinem programm erstelle dann in nem normalen JEditorPane darstellen?
 

Wildcard

Top Contributor
Nein, es sei denn du möchtest die Rendering Capabilities einer Office Suite nachprogrammieren. Aber warum meinst du eine JEditorPane zu benötigen, wenn du bereits den echten Editor in deinem Programm hast?
Wie gesagt, dort liegen Code Snippets für konkrete Anwendungsfälle, so auch das embedden einer Office Bean vor. Ist also im Prinzip nur Copy Paste.
 

Sunchezz

Bekanntes Mitglied
Ok, jetzt nochmal für Anfänger. Ich kann mit diesem Fachschinesisch nicht wirklich viel anfangen! Was sind Snippets? Eigentlich muss ich doch jetzt nur noch wissen welche klassen ich genau einbinden und benutzen muss... oder?? Son kleiner Schnipsel als beispiel wär glaub ich recht hilfreich!
Und den JEditorPane wollt ich benutzen um die Dokumente einfach nur darzustellen ohne die möglichkeit sie zu verändern, sozusagen eine Vorschau!

Sorry falls ich nen bisschen anstrengend bin xD
 

Wildcard

Top Contributor
Ich kann mit diesem Fachschinesisch nicht wirklich viel anfangen! Was sind Snippets? Eigentlich muss ich doch jetzt nur noch wissen welche klassen ich genau einbinden und benutzen muss... oder?? Son kleiner Schnipsel als beispiel wär glaub ich recht hilfreich!
Ein Snippet ist ein Beispielschnipsel
 

Sunchezz

Bekanntes Mitglied
So, ich denke ich hab nen nützliches Beispiel gufenden, den SWriter. So, der will aber nich Kompilieren weil er die packages nicht findet -.- und das obwohl ich die nötigen UNO-Jars im selben verzeichnis habe, also das ridl.jar, juh.jar und jurt.jar! kann mir das mal einer erklären?
 

Sunchezz

Bekanntes Mitglied
Ok, ich hab jetzt alle jars aus dem verzeichnis "\OpenOffice.org 3\URE\java" in das Verzeichnis der SWriter Klasse kopiert, und dennoch findet er 90% (ungefähr) der gebrauchten Packages nicht. Langsam zweifle ich ein bisschen an meiner Kompetenz :D
Ich schätze mal ich habe bei der Installation etwas falsch gemacht. Obwohl ich eigentlich alles wie beschrieben getan habe. Auch in anderen Foren wurde beschrieben was gemacht werdne muss, und mir ist aufgefallen das öfter das JAR unoil.jar erwähnt wurde, welches ich aber nicht in meinem Verzeichnis habe! liegt das an der neuen 3er Version des OpenOffice ? Oder habe ich wirklich etwas falsch gemacht?
 

Wildcard

Top Contributor
Was hast du überhaupt installiert? Besagtes NOA, oder wagst du dich an blankes UNO?
Ich kann wir wirklich nur empfehlen, die NOA API zu verwenden.
 

Sunchezz

Bekanntes Mitglied
wie bereits gesagt, ich hab dat UNO ding gegoogelt und absolut nix zum download gefunden... das einzige was ich finden konnte war das OpenOffice3 Paket wo angeblich alles drinne is was man braucht... aber verwirrung machte sich breit als nix funktioniert hat und ich nirgends was von UNO finden konnte.
Also, ich wär echt glücklich wenn du mir präziser beschreiben könntest was genau zu tun ist! Hab mich damit halt noch nie beschäftigt und kann daher nicht mit einer Selbstverständlichkeit genau wissen was du alles meinst ;)

(falls das unterschwellig agressiv klingt, ich weiß nur nich wie ich das anders ausdrücken soll ;))
 

Wildcard

Top Contributor
Ich sagte doch: NOA, nicht UNO.
Veröffentlichungen — ubion.ORS
Das lädst du runter, das ist der Java spezifische Teil und nichts anderes benötigst du in deinem Java Projekt. Im Paket sind Codebeispiele enthalten darunter auch welche, die Zeigen wie man OOo in ein AWT Panel embedded.
Ausserdem brauchst du entweder eine OOo Installation, oder OOo Portable.
 

Sunchezz

Bekanntes Mitglied
So, nach längerer Pause kann ich mich nun endlich wieder meinem Problem widmen!
Danke nochmal für die viele Hilfe die mir hier schon gegeben wurde.

Ich habe nun die meisten Griff bekommen! Allerdings ist noch ein einziges übrig geblieben. Ziemlich banal eigentlich, und dennoch scheinbar unlösbar für MICH.

Ich kann trotz stundenlangem suchen nirgendswo das benötigte com.sun. package finden.

Kann mir jemand sagen wo ich das bekomme?
 

Sunchezz

Bekanntes Mitglied
Danke nochmal für deine Mühe Wildcard!

Ich bin jetzt ein ganzes Stückchen alleine weiter gekommen.
Allerdings ist noch nicht alles fertig.
Das OOo habe ich jetzt in meiner Anwendung zum laufen bekommen ( vielleicht sollte ich mal dazu sagen das es sich hierbei um eine swing Anwendung handelt)

Ich hatte bis heute das Problem das beim Start der Anwendung stehts die Fehlermeldung "can't lock drawing surface" kam. Das konnte ich jetzt umgehen/beheben dadurch das ich den Writer erst gestartet habe nachdem der Rest der kompletten Software fertig mit darstellen war! (wobei sich mir immernoch die Frage stellt warum das so ist)

Jetzt ist aber ein neues seltsames Problem aufgetreten.

Der Writer ist in einem Tab (JTabbedPane) untergebracht. Beim start der Software wird der Editor ganz normal dargestelt, wenn ich jetzt aber zu einem anderen Tab wechsle ist in dem neuen Tab genau an der Stelle wo im alten der Editor war ein großes weißes Rechteckt! Schonmal extrem unschön und auch hinderlich, weils andere Funktionen verdeckt. Aber es geht noch weiter. Wenn ich wieder zum alten Tab wechsle, wird nicht mehr der Editor dargestellt, sondern wieder ein großes weißes Rechteck diesmal allerdings mit zwei Scrollbars an beiden Seiten vom darunterliegenden JPanel. Noch nicht genug, die beiden bewegen sich unaufhörlich, so als würden ständig neue Editoren hinzugefügt zum Panel. Ich bin mir aber zu 99% sicher das das nicht der Fall ist, denn ich habe dafür gesorgt das bei jedem Tabwechsel der Editor beendet wird, und nur beim öffnen dieses bestimmten Tabs der Editor erneut gestartet wird.

Ich habe es bereits mit allem möglichen versucht:
repaint, revalidate, und große google suchaktion und auch hier habe ich bereits stunden geschaut.
(ich muss zugeben das ich mir nicht sicher was revalidate gebirkt, aber es hat mir bei einigen Darstellungsproblemen geholfen :D)

Ich kann mir nur vorstellen das es daran liegt das eine eigenständige Software in eine andere eingebunden wird, obwohl ich ja nicht der erste wäre der das tut -.- also muss es ja irgendwie funktionieren!

(Ich hoffe es wird nicht nötig den Code zu posten, denn der besteht aus ca. 20 Klassen und einigen MB anderen Dateien. :( )


Vielen Dank schonmal für jegliche Hilfe!!!
 

Wildcard

Top Contributor
Du mischst AWT mit Swing (denn die Office Bean ist heavy weight). Das geht zwar, aber nur solange sich die Swing Components sich nicht direkt mit den AWT Components überdecken (wie bei einer JTabbedPane der Fall).
 

Sunchezz

Bekanntes Mitglied
Hmm... -.-

mit anderen Worten ich hab nen großes Problem wenn ich meine swing-Anwendung jetzt nicht komplett in AWT ändern will??

oder gibts da jetzt noch irgend ne Möglichkeit? wäre es machbar den Editor in einem gesonderten Panel außerhalb des TabbedPane zu implementieren?
 

Wildcard

Top Contributor
Niemand redet davon die ganze Anwendung auf AWT umzustellen. Nur die JTabbedPane funktioniert so eben nicht. Gibt ja auch noch AWT Panel + CardLayout. Die packst du in ein JPanel das oben ein paar JLabel mit MouseListener hat (oder ähnlich) und fertig.
 

Sunchezz

Bekanntes Mitglied
Ok danke auf jeden Fall erstmal für die viele Mühe!!

vielleicht kann ich mich ja mal revangieren wenn du hilfe von mir brauchst... ^^ :D:D
(Anfänger-)Spaß!!! :D


Nein wirklich, vielen Dank!
 

Sunchezz

Bekanntes Mitglied
Hmm... verdammt, das habe ich über die ganze vergangene Zeit schon fast vergessen:

im Prinzip liegt das EditorPanel garnicht im JTappedPane. Eigentlich habe ich fast wie du beschrieben hast mir nur das TabbedPane genommen, nen MouseListener drauf gelegt und dann die Positionen der einzelnen Tabs mit extra JInternalFrames verbunden. also Tab 1 = InternalFrame1
je nach einfachem Klick oder doppeltem wird der Internal Frame normal dargestellt, oder maximiert/minimiert.
Also liegt mein EditorPanel im InternalFrame, welcher aber nichts mit dem TabbedPane von der ContainerHirarchie her zu tun hat.

Ich hoffe es ist klar geworden was gemeint ist :D
 

Sunchezz

Bekanntes Mitglied
Ich stelle immer wieder fest rumwurschteln und probieren ist die beste Möglichkeit etwas herauszufinden :D

Also das Problem mit den Weißen Flecken auf den anderen Tabs ist behoben.
--> Ich habe das Untergrund Panel des Editors als AWT-Panel implementiert!

Aber jetzt hat sich das vorhin beschriebene Phenomän mit den Scrollbars verkleinert, aber es besteht weiterhin ein anderes^^
wenn ich den tab wechsle, und dann wieder zurückgehe, habe ich 2 editoren im gleichen Panel, nur halt nicht wirklich :)S). das Panel wird sozusagen geteilt, und nur noch auf der rechten Seite des Panels wird der Editor dargestellt, jetzt nur leider halb so klein. Die linke seite ist in bekanntem Weiß -.-
Eigentlich sieht es ja so aus als ob zwei editoren da sind, aber das kann nicht sein... ich lösche bei jedem Wechsel das blöde Panel!
 

Sunchezz

Bekanntes Mitglied
Dann wird der Editor wieder ganicht mehr angezeigt! -.-
So langsam werde ich wahnsinnig^^

Es scheint als ob der nur das GridLayot akzeptiert. Habe alle anderen mal durchprobiert!
Es muss also an was anderem liegen.
 

Sunchezz

Bekanntes Mitglied
So, ich habe jetzt geschafft! Ich finde es zwar sehr umständig was ich machen musste, aber es funktioniert.
Ich musste jetzt bei jedem Tabwechsel das OOO deaktivieren, Das "NoaPanel" vom darunterliegenden Panel entfernen, und es danach wieder leer hinzufügen. Dann wird erst das NoaPanel wie am anfang neu gestartet und dem Panel hinzugefügt...

Es bleibt mir weiterhin ein Rätsel warum es nicht ohne neustart funktioniert!!! Ich schätze mal wegen den vielen Swing-Elementen und dem AWT Editor dazwischen der dann nicht mit dem repaint klar kommt!

Wenn jemand ne bessere lösung hat die funktioniert würde ich mich freuen! meine ist nämlich ziemlich langsam -.- Zwar ausreichend, aber Trotzdem unschön.
Außerdem ist das OOO noch scheinbar verbugt, oder es ist das Noa-Paket was nicht einwandfrei arbeitet : Es kommt teilweise vor das der Editor ohne leeres Blatt startet. nach einigen Versuchen ist dann aber doch wieder eine Seite zu sehen! Alles Seltsam ;)

Und dennoch vielen Dank für alle die geholfen haben!!!
Besonders Wildcard ;)
 

Wildcard

Top Contributor
Ich habe dem darunterliegenden Panel das CardLayout zugewiesen.

Ist das falsch?
Und dann? Du musst dann auch bestimmen welches Kind gerade angezeigt werden soll :)
How to Use CardLayout (The Java™ Tutorials > Creating a GUI with JFC/Swing > Laying Out Components Within a Container)

Deine Lösung ist übrigens ziemlich daneben, mach es lieber richtig, sonst bekommst du damit Probleme.
Ich würde dir empfehlen von 0 Anzufangen mit einem Frame der ein Panel mit Cardlayout hat und dort zwei OOo Dokumente anzeigt + Ein Button um zu wechseln.
Das macht es für dich einfacher weil du dich auf das konkrete Problem beschränkst, und es macht es mir einfacher, weil du dann ein lauffähiges Code Snippet posten kannst mit dem ich dir helfen kann wenn etwas nicht funktioniert.
 

Sunchezz

Bekanntes Mitglied
So... ich habe jetzt mal das ganze Projekt hochgeladen....

http://www.java-leopard.de/Sunny/Projekt.rar

Ne Textdatei ist dabei...

Das ganze dürfte ziemlich unübersichtlich sein, weils erst die Probeversion ist!
Schreibe das ganze denn nochmal ordentlich und übersichtlich wenn ich fertig bin xD

wäre schön wenn dus dir mal anguckst. Sag bescheid wenn dus dir runtergeladen hast damit ich es wieder löschen kann!
 

Wildcard

Top Contributor
Nein, tut mir leid. Ich bin gerne bereit dir zu helfen, aber derart viel Quellcode werde ich nicht durchsehen.
Mach ein kleines Beispiel, das dein Problem reproduziert und sonst nichts tut, dann sehe ich was ich für dich tun kann.
 

Sunchezz

Bekanntes Mitglied
Hmm okay Schade!
Dann werde ich mich wohl mal hinsetzen und das alles reduzieren.
Ich hoffe du hast die Readme gelesen und nur die beiden klassen angesehen...

Wenn ja und dir das trotzdem alles zuviel ist, werd ich wohl in den sauren Apfel beißen müssen ;)

Aber anstatt zu nörgeln sollte ich vielleicht lieber dankbar sein!! ^^
 

Wildcard

Top Contributor
Ja, habe die Readme gesehen aber meiner Meinung nach reichen diese beiden Klassen nicht als Kontext. Ich habe mich dann ein paar Klassen weiter durchgegraben, recht viel duplizierten Code gesehen und beschlossen, das eine sinnvolle Fehleranalyse kaum möglich ist ohne das ganze Ding durchzugehen.
 

Sunchezz

Bekanntes Mitglied
Ja, wie gesagt... der ganze duplizierte Code hängt mit der entwicklung zusammen :-D
Andauernd blitzideen die sofort ausprobiert werden müssen und da vergesse ich manchmal das ich was ähnliches oder das gleiche bereits woanders schon habe :D

Egal, zurück zum Problem:
Ich habe mir mal die Freiheit genommen und einen NOA-Entwickler auf das Problem angesprochen, der meinte das es am JInternalFrame liegt. Er bekommt das gleiche Problem bei einem von ihm geschriebenen Beispiel.
Nun soviel zu dem Thema.
Das wird letztendlich wohl die kompatiblität vom OOo zum Frame sein.

Ich kann nur hoffen das er sich irrt :D
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben