.| Autor | Beitrag |
|---|---|
|
000 17.05.2006, 02:55 feigling |
Hi, ich weiß nicht, wie ich den Thread hier genau nennen soll, aber ich hoffe mal, es wird gleich ersichtlich, wo mein Problem liegt und zwar möchte ich via JOptionPane und createDialog ein Dialogfenster erstellen und anzeigen. Das ist nicht weiter schwierig.
Nun allerdings muss ich das in Verbindung bringen mit SwingUtilities.invokeLater. Das habe ich auf folgende Weise probiert:
also das Fenster garnicht richtig aufgebaut wird. Und zwar liegt das an SwingUtilities.invokeLater. Das Problem ist jetzt aber, dass im eigentlichen Projekt dieses invokeLater benutzt werden muss (soweit ich weiß - den Teil hat jemand anders gemacht ;x) Funktionieren tut es, wenn ich das Fenster modal mache, allerdings wird Code nach dialog.setVisible(true); natürlich erst ausgeführt, wenn ich auf den Button im Dialog geklickt habe. Im richtigen Projekt wird es da allerdings keinen Button geben. Naja, langer Text, kurze Frage: Weiß jemand, wie ich das Fenster korrekt anzeigen lasse mit SwingUtilities.invokeLater und ohne das Fenster modal zu setzen? ich habe da jetzt bestimmt 10 Stunden dran gesessen und probiert und es jetzt soweit einschränken können wie oben zu sehen ist. Ich weiß so langsam nicht mehr weiter. Was ich weiß ist, dass Swing nicht threadsave ist und dass man darum SwingUtilities.invokeLater benutzt, daher verstehe ich nicht, warum es zu so nem Anzeigenfehler kommt. (Und kein Kriz im Chat, wenn man ihn braucht >:P) €dit: Das
Dieser Beitrag wurde am 17.05.2006 um 06:37 von feigling bearbeitet. |
|
Profil || Suche |
|
001 17.05.2006, 06:49 Kriz |
Ich glaube, daß ein von JOptionPane erzeugter Dialog immer modal ist, denn die Pane ist ja von Natur aus auch immer modal (muß sie ja auch). In der Ref steht bspw. auch, daß man ein aus der Pane erzeugten Dialog nicht resizen kann, außer man setzt das Feature über die Dialoginstanz explizit wieder in Gang. Ich habe auch mit den alten Settings und den neuen 1.6er Settings rumgespielt, aber sobald der Dialog modeless war, funzte die Sache nicht mehr. Soweit ich das rausbekommen habe, ist zwar der Dialog an sich bereits fertig, aber seine Komponenten sind noch nicht soweit, daß sie gezeichnet werden können. Daher kommt da auch nichts. Ich glaube, da bleibt dir wohl nichts anderes übrig, als die Natur der Pane zu respektieren und den erzeugten Dialog modal zu lassen... --- Und wenn du nun anstatt der Pane den Dialog direkt bastelst? An sich brauchst du ja nur den Dialog an sich ohne die Pane. Ist zwar ein wenig Bastelei, aber eventuell umgehst du so das erzwungene Modelverhalten der Pane. --K:R-I)Z++ Dieser Beitrag wurde am 17.05.2006 um 06:51 von Kriz bearbeitet. |
|
Profil || Suche |
|
002 17.05.2006, 06:59 feigling |
Oh, ein Frühaufsteher =) "Ich habe auch mit den alten Settings und den neuen 1.6er Settings rumgespielt, aber sobald der Dialog modeless war, funzte die Sache nicht mehr. Soweit ich das rausbekommen habe, ist zwar der Dialog an sich bereits fertig, aber seine Komponenten sind noch nicht soweit, daß sie gezeichnet werden können. Daher kommt da auch nichts." Das wusste ich nicht. Modal kann ich den Dialog nicht machen, weil ich den dann nicht mehr beenden kann (kein Button im eigentlichen Dialog). Naja, erzeuge ich halt den Dialog selber. So viel mehr ist das ja auch nicht. Und so lange das dann funktioniert :D Danke für den Hinweis. Wenn das dann immer noch nicht laufen sollte, melde ich mich nochmal. -- |
|
Profil || Suche |
|
003 17.05.2006, 08:45 Kriz |
Hm... Also ich hab hier nen Code, der funzt zumindest auf Win2000 mit JDK 1.6 problemlos :) Rufe setModal(false) erst NACH setVisible(true) auf. Alles Quatsch o_O Nach setVisible(true) werden sowieso alles Zusatzkonfigs an den Dialog ignoriert, er ruft also so nur das voreingestellte setModal(true) auf... Wie auch immer, auch ein eigenständiger Dialog ohne Pane-Quelle wird nicht korrekt angezeigt. Tja... Da kann ich dir leider auch nicht weiterhelfen. Da solltest du mal direkt Javafreaks ansprechen, evtl. bei www.tutorials.de :( --K:R-I)Z++ Dieser Beitrag wurde am 17.05.2006 um 08:56 von Kriz bearbeitet. |
|
Profil || Suche |
|
004 17.05.2006, 15:49 feigling |
Mhh ich probiere es gleich selber nochmal mit nem eigenen Dialog. Danach gucke ich dann mal bei www.tutorials.de. Nochmals danke. -- |
|
Profil || Suche |

