Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
Fehler bei Swing-Gui
flaite:
Ich glaub Ralf meint eher den Aufruf von Business-Logik (in deinem Fall was in Notes gemacht wird) aus einer Swing Gui ohne das letztere einfriert.
http://www.galileocomputing.de/openbook/javainsel6/javainsel_14_024.htm#mjb965381f58560b47f2662ee6638ea91c
botschi:
Hallo Axel,
dann habe ich das falsch verstanden.
@Ralf: Meintest Du das was Axel gepostet hat ?
Die Aktualisierung der GUI funktioniert einwandfrei.
Es kam halt bloss diese Fehlermeldung hoch, mit der ich nichts anfangen konnte.
Matthias
flaite:
Für wirklich ernsthafte Anwendungen wie Ralf sie mit Swing programmiert hat, könnte der Meinung sein, dass Aufrufe auf Lotus Notes aus einer Swing Gui ohne invokeAndWait oder invokeLater gar nicht "richtig" funktionieren können, obwohl es zufällig so aussieht als ob.
Wenn ich heute etwas neues lerne wie z.B. JSF, Groovy oder Grails, benutze ich immer gute vorhandene Beispielanwendungen. Gibts natürlich für Swing gegen Notes nicht wirklich. Zumindest sind mir keine bekannt.
Ralf_M_Petter:
Ich meine, dass du wie Axel schon geschrieben hat, jeden Thread, also sowohl den Eventthread als auch jeden anderen Thread für Notes wieder initialsieren musst, und auch wieder richtig terminieren musst. Gerade beim Event thread ist das aber ein wenig schwierig, da ja alle möglichen Events kommen können und auch mehrere Javaprogramme in einer JVM laufen können. Wenn ich es noch einmal machen würde, dann würde ich sämtlichen Notes Code in einem eigenen Thread laufen lassen, der dann wie Axel geschrieben hat, die Swing Gui mit InvokeLater aktualisiert. Zugriffe auf Swingobjekte von einem anderen Thread würde ich vermeiden wie der Teufel das Weihwasser.
Grüße
Ralf
P.S. Und nicht vergessen, Swing ist nicht gut unter Eclipse. Gibt zwar Integrationswerkzeuge aber die sind Murks. Also spätestens mit Notes 8 sollte man sowieso SWT verwenden, wo bei dann aber wirklich geile Sachen möglich sind. Auch wenn Swing SWT meiner Meinung nach in den meisten Punkten überlegen ist.
flaite:
Es ist ein bischen dappisch sich als Anfänger mit Swing zu beschäftigen.
Es liegt nahe, weil irgendwie will man ja mit seiner Anwendung kommunizieren und dann nimmt man eben Swing.
BUT: Swing ist kompliziert (innere Klassen, Event Handler, die man anmelden muss, komplizierteres Threading-Zeugs als mit Webandungen, komplizierte Klassen, kompliziertes Zusammenspiel der Klassen und und und.
So entstehen urban legends wie "in Java muss man alles selber machen".
Weniger frustrierend ist imho ein anderes Vorgehen:
Einfach eine kleine und zielgerichtete API wie z.B. jexel (für Excel Zugriffe) nehmen und sich dann in die Junit-Tests Unterstützung für Eclipse ein bischen einlesen. Nicht mit Testdriven Development anfangen. Einfach für jede Funktion, die man proggen will, EINEN Junit Test schreiben. Z.B.: Alle Reihen einer Excel-Datei in eine ArrayList von selbstgeschriebenen Objekten schreiben. Das Programm startet man dann in Eclipse aus der Junit-Test Klasse und gibt das Ergebnis per System.out.println raus. Eclipse besitzt für Junit-Testklasse einen Wizzard. Einfach bis zum letzten Screen durchklicken und als Test nur eine Methode anklicken (die wo die ganze gewünschte Funktionalität erledigt). Das ist imho auch viel realistischer für Notes Entwickler, da die Einbindungsmöglichkeiten für Java in Release 6 deutlich gestiegen sind.
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln