# [GUI] [JApplet] [JDialog] Nochmal die Frage zur Modalität un



## alex-t (24. Aug 2004)

Hallo Forum,

ich habe mein Anliegen schon vor einiger Zeit vorgetragen. Allerdings nicht in einer angemessenen Form und muss mich dafür entschuldigen. Ich versuche es noch mal, und hoffe jemand gibt mir Unterstützung bei meinen Java-Ersten-Schritten.

Zunächst eine Grafik: http://www.alex-t.de/wmsLayout.gif

Um mein Problem leichter verständlich zu machen, bitte schaut euch parallel hierzu diese Grafik an.
In der Oberen Hälfte kann man ein JApplet Layout sehen, so wie es gewünscht wird. planungstechnisch ist das projekt ausgereift, es happert noch an Details der Umsetzung. Im North-Bereich des BorderLayouts ist eine Toolbar und im Center-Bereich liegt die TabbedPane samt Inhalt. Das ist weiter uninteressant, weil es damit keinerlei Probleme gibt.

Im Applet ist ein Menü erwünscht, das jederzeit und vor allem schnell zu erreichen ist. Selbst ein Mausklick könnte schon lange dauern, deshalb wird bei dem Button an der linken Seite das MouseEntered Event benutzt, um in das Menü zu gelangen. Nach langer Planungsphase hat sich herausgestellt, dass diese "Geste" der günstigste Weg ins Menü ist und unbedingt verwendet werden MUSS.

Das Menü selbst, in der Grafik rot, halb durchsichtig dargestellt, ist, nach dem jetzigen Stand, ein JDialog. Ich habe aber irgendwo eine Kurze, leider unverständliche Anwort erhalten, dass es andere Komponenten gibt, die speziell für dieses Problem besser geeignet wären. Leider wurde mir bis heute nicht verraten, welche Komponente das sein soll. Falls jemandem von euch eine Idee kommen sollte, womit folgendes besser zu realisieren wäre, bitte ich euch um eure Hilfe.
Momentan sieht es so aus: Bei der Initialisierung des Applets soll ein Dialog-Fenster modal, an der Bildschirmposition des Buttons für den MouseEntered Event, erstellt und mit setVisible(false) unsichtbar gemacht werden. (Es ist wichtig, dass dieses Dialog nicht zerstört, sondern nur ausgeblendet wird.) Sobald der erwähnte MouseEntered Event eintritt, soll dieses Dialog-Fenster sichtbar gemacht werden. (Im weiteren soll dessen Position noch überprüft werden, weil er unter dem Mauszeiger erscheinen soll.) Sobald der Benutzer mit dem Mauszeiger aus dem Menü "rausgeht" (Event: MouseExited), soll dieses wieder unsichtbar werden.

Mir ist bewusst, dass hier noch eine Schwierigkeit einfliesst, die Browser-Fenster heisst. Allerdings ist die Basis der Applikation das Web und die günstigste Möglichkeit ist nun mal ein Applet, das im Browser geladen wird.

Die Probleme:
Nach längerem Suchen und noch viel längerem Probieren und lesen, habe ich es schon geschafft das Dialog-Fenster modal zu erstellen. Ein und Ausblendung ist ebenfalls kein Problem mehr.
Allerdings happert es noch gewaltig an den Events. Der MouseEntered Event war lehrbuch-leicht. Nur das mit dem Verlassen des JDialogs, das ist immer noch ein Rätsäl für mich. Und deshalb bitte ich euch um Hilfe.
Ich bin schon auf dem Richtigen Weg, aber irgendwo fehlt mir das Know-How, denn das Event funktioniert, leider nicht ganz so wie es sein soll. Beim JDialog, kann eine Größe in der Implementierung (z.B.: 200x300px) einstellen. Und beim erstellen eines JDialog Objektes(!) kann man ebenfalls eine Größe einstellen. (z.B.: 280x400px) Man sieht es hier schon, es wird ein leerer Raum am rande des Dialog-Fensters angezeigt. Und wenn ich mit dem Mauszeiger in der Mitte des Dialog-Fensters bin, und dann nach links, oder nach unten den Mauszeiger verschiebe, passiert das was passieren soll, eine Konsolenausgabe und die Ausblendung des Dialogs. Nur ist dieser unschöne leere Raum im Dialog-Fenster doch störend. ABER, falls ich die Größe so einstelle, dass es keinen leeren Raum gibt, tritt das gewünschte Ereignis nicht ein! Kann mir jemand dieses Verhalten erklären? Hängt das irgendwie mit dem Browser zusammen? Und gibt es hierfür evt. ein Workaround?

Ich bin für jede erdenkliche Hilfe dankbar! Ich hoffe, dass das was ich vor habe nicht unmöglich ist. 

Mit freundlichen Grüßen

Alex Tugarev


----------



## L-ectron-X (24. Aug 2004)

Als kleine Einstiegshilfe, für die, die gerne helfen möchten, habe dazu noch mal den ursprünglichen Thread heraus gesucht.
http://www.java-forum.org/de/viewtopic.php?p=31044


----------



## alex-t (2. Sep 2004)

Naja, hat sich dann auch mal erledigt. Bin auf die geniale Technik mit dem Kürzel JWS gestoßen. Jetzt bleibe ich dabei. Und die Welt ist wieder in Ordnung.


----------



## L-ectron-X (2. Sep 2004)

Bist du so nett und erklärst mir die Grundzüge dieser "genialen" Technik? Was ist JWS?


----------

