Domino 9 und frühere Versionen > ND6: Entwicklung
Java Gui durch Agent
prong:
Moin,
ich habe da ein kleines Problem mit Java in Notes.
Angeblich versteht Notes ja Java, allerdings scheint das Verständnis nur sehr begrenzt
zu gelten.
Folgendes Problem:
Ich möchte über ein Agent einen Java Gui starten. Folgender Code funktioniert:
import lotus.domino.*;
import javax.swing.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
JFrame frame = new JFrame("Test");
frame.setSize(300,200);
frame.setVisible(true);
// (Your code goes here)
} catch(Exception e) {
e.printStackTrace();
}
}
}
es erscheint ein Fenster.
Wenn ich das ganze aber in eine andere Klasse packe, mit einer Funktion die das
GUI aufbaut. Kommt nix, außerdem kann ich auch kein Layout setzten.
Sprich frame.getContentPane(); funktioniert nicht.
Eins ist sicher der Code läuft im richtigen Java ohne Probleme.
Kann mir da jemand einen Tip geben?
Danke und Gruß
Marco
PS: Arbeite mit 6.5.1
prong:
Hat sich erledigt, haber heraus bekommen, dass Notes kein swing kann ???
Komisch, aber was sollte man anderes erwarten...
Hat vielleicht irgendwer eine Ahnung wie ich java.swing.*;
importieren kann, oder nen Interface dafür schreiben kann
Marinero Atlántico:
--- Zitat von: prong am 13.11.04 - 12:36:34 ---Hat sich erledigt, haber heraus bekommen, dass Notes kein swing kann ???
--- Ende Zitat ---
Hi.
Ich wüßte nicht, warum sollte Notes "kein Swing können sollte". Kannst du bitte mal deinen nicht-funktionierenden code posten. Dann könnte man auch untersuchen, warum das nicht funktioniert (soweit Zeit).
Soweit ich weiss, hat Ralf hier aus dem Forum mit sowas gearbeitet (und zwar mit Swing).
Ich persönlich bin architekturmässig eher Purist. Hast du dir mal überlegt, deine Gui einfach als Standalone Anwendung einfach in swt oder swing zu entwickeln, diese mit Java Web Start oder sonstwie zu verteilen und die dann mit http oder webservices over http mit dem Domino Server kommunizieren zu lassen?
Ich halte das für eine sauberere Lösung.
http://www-106.ibm.com/developerworks/lotus/library/opstdomino-pt3/
Du hast mit "Swing Gui in Notes Agenten" sicherlich irgendwelche echt potentiell vertrackte Threading Geschichten am Werk. Was also erstmal wie eine kompakte Lösung aussieht (Isch pack die GUI einfach in den Agenten), ist vielleicht gar nicht einfacher.
[die folgenden Infos sind nicht richtig nachgeprüft und amateurhaft ausgedrückt, wenn ich Zeit habe schlage ich nach]
Eine Swing GUI belegt auf jeden Fall einen eigenen GUI-Thread...
Vielleicht solltest du aus dem Notes-Agenten einen eigenen GUI-Thread starten, darin die GUI laufen lassen und den Notes-Agent-Thread solange in einer Endlosschleife laufen lassen, bis der Anwender die GUI abbricht.
Vielleicht schaue ich mir das noch genauer an oder Ralf kommt vorbei.
Gruß Axel
prong:
Der Code steht oben.
Vielleicht hätte ich besser schreiben sollen Notes Agents können kein Swing.
Leider macht es wenig Sinn das ganze als Standalone Anwendung zu schreiben, da
der Agent für das einlesen einer Datei zuständig sein soll. Diese soll der Nutzer über einen Dialog auswählen können und anschließend automatisch verarbeitet werden.
Gruß
Marco
Marinero Atlántico:
--- Zitat von: prong am 13.11.04 - 12:56:34 ---Vielleicht hätte ich besser schreiben sollen Notes Agents können kein Swing.
--- Ende Zitat ---
Das geht vermutlich schon. Ist aber nicht so einfach.
--- Zitat von: prong am 13.11.04 - 12:56:34 ---Leider macht es wenig Sinn das ganze als Standalone Anwendung zu schreiben, da
der Agent für das einlesen einer Datei zuständig sein soll. Diese soll der Nutzer über einen Dialog auswählen können und anschließend automatisch verarbeitet werden.
--- Ende Zitat ---
Warum machst du die Eingabe nicht einfach über eine Notes (oder Web Maske/geht beides) und lässt dann das File über einen Agenten weiterverarbeiten?
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln