Aiun Geschrieben 27. September 2005 Geschrieben 27. September 2005 hi, folgendes Konstrukt: ich habe eine Gui (JFrame) bestehend aus einem JScrollpane und einem JDesktopPane, in dem Scrollpane ist ein JTree. bei Start der Applikation setze ich eine bestimmte größe und richte die Gui Objekte absolut aus (z.Z. JBuilder-XYLayout) für das Fenster gibt es einen EventListener der auf ComponentResized reagiert und den DesktopPane dann mit .setbounds() vergrößert. Am Scrollpane / JTree soll sich soweit nichts ändern. funktioniert auch ! Problem: wenn ich auf einen der Dialoge IM DesktopPane klicke oder diese Resize, setzt sich das DesktopPane und vermutlich auch der rest zurück in die beim Start festgelegte größe. Die initialisierung unsw. steht im Konstruktor bzw. eine im Konstruktor aufgerufene Methode. ich habe keine Ahnung wo ich da verhindern kann, das er das DesktopPane zurücksetzt...geschweige denn wo ich eigentlich suchen soll und hoffe ihr könnt helfen. Zitieren
_Arvid_ Geschrieben 27. September 2005 Geschrieben 27. September 2005 Da kann ich dir nur einen Tipp geben, keinen konkreten Lösungsvorschlag. Breakpoint setzen. Debugger starten. Reinhängen und Fehler suchen. Könnte es vielleicht auch sein, dass du an irgendeiner Stelle die Methode pack() deines JFrames aufrufst? Wenn ja, dann auf jeden Fall dort reindebuggen. Was dein Layout angeht, kann ich nur nochmal wärmstens empfehlen, dich auf jgoodies.com mit dem Framework forms zu versorgen. Dort gibt es das FormLayout. Wirklich sehr guter LayoutManager. Wer weiß, vielleicht liegt es ja sogar an deinem XYLayout. Ist ja schließlich "nur" ein Borland-Erzeugnis.... Schönen Gruß. Zitieren
Aiun Geschrieben 27. September 2005 Autor Geschrieben 27. September 2005 Breakpoint setzen und debuggen geht nicht wirklich. Was da aufgerufen wird ist keine von meinen Methoden, sondern irgendwas gegebenes vom Layout, Component oder JFrame...wenn ich es wüsste währe mein Problem schon fast gelöst hab jetzt mal mit einem anderen Absolut-Layout versucht...gleiches Ergebnis....daran liegt es nicht. habe bisher auch nichts gefunden um die Constraints im nachhinein zu ändern.... Form vom Jgoodies...naja...ist wieder "nur" ein TabellenLayout....und ich hab ein paar dinge die da einfach nicht machbar sind. trotzdem danke für den Link...sind andere nette sachen drauf. Zitieren
perdian Geschrieben 27. September 2005 Geschrieben 27. September 2005 Form vom Jgoodies...naja...ist wieder "nur" ein TabellenLayout....und ich hab ein paar dinge die da einfach nicht machbar sind.Gib mal ein Beispiel - mir ist bisher noch nichts untergekommen, was sich mit dem FormLayout nicht machen lässt. Zitieren
_Arvid_ Geschrieben 27. September 2005 Geschrieben 27. September 2005 Was da aufgerufen wird ist keine von meinen Methoden, sondern irgendwas gegebenes vom Layout, Component oder JFrame...Mit einer ordentlichen Entwicklungsumgebung (bestimmt auch schon mit einem etwas besseren Editor) kannst du auch dort problemlos reindebuggen. Ja, selbst wenn die Klassen nicht von dir kommen. Im JDK von Sun werden die Sourcen nämlich mitgeliefert. Das lasse ich also nicht als Ausrede gelten... mir ist bisher noch nichts untergekommen, was sich mit dem FormLayout nicht machen lässt.Dem kann ich nur zustimmen. Auch wenn dein Problem nix damit zu tun hat, ist FormLayout äußerst flexibel. Wirklich sehr vielseitig einsetzbar und obendrein noch komfortabel. Und deiner Beschreibung nach scheint mir dein Layout alles andere als komplex, so dass es mit dem FormLayout absolut klappen sollte. Also auch die "nur ein TabellenLayout"-Ausrede lasse ich nicht gelten. ...aber B2T: Versuch dich wirklich mal rein zu debuggen. Das ist sowieso etwas, was man auch im "Echten Leben" mitunter sehr häufig braucht. Die Möglichkeit, zu debuggen, sollte man nicht so leichtfertig zur Seite legen. Das ist echt wichtig! Zitieren
Aiun Geschrieben 27. September 2005 Autor Geschrieben 27. September 2005 im Bezug auf mein Problem ist es egal ^^ ich will erstmal wissen was das Hauptfenster damit zu tun hat, wenn ich einen Internalframe resize, welche Methode wird da aufgerufen und warum ? ich habe in den Code des jetzigen Absolut-Layouts mal reingesehen...da ist nichts was auf ein Resize oder so reagieren würde. Warum kein Tabellenlayout ? "nicht möglich" dürfte die falsche Formulierung sein, soweit ich erkennen kann geht damit recht viel. Allerdings müsste ich mich jetzt erstmal gut darin einarbeiten um mit der Lib umzugehen. Da ich meine Projekte "auch" mache um mich beruflich zu bilden...und ich auf der arbeit nunmal nicht jede Library nehmen darf, muss ich auch mit dem klarkommen was mir die IDE bietet, oder zumindest wissen was los ist, um entscheiden zu können was gemacht wird. werd mich sicher auch noch mit Form beschäftigten... wie gesagt, mit dem Problem dürfte es nichts zu tun haben. Zitieren
Aiun Geschrieben 27. September 2005 Autor Geschrieben 27. September 2005 Ar-Sch, ich müsste nur wissen "wie" ich den teil debuggen kann. das ist so als ob du ein Onclick-Event debuggen willst, aber noch gar keinen Eventlistener dafür hast unsw. ich weis einfach nicht wo ich da anfangen sollte zu debuggen ? Zitieren
_Arvid_ Geschrieben 27. September 2005 Geschrieben 27. September 2005 Das ist leider schwer zu sagen ohne Sourcen. Zeig doch mal deinen Code, soweit du ihn veröffentlichen magst/kannst/darfst... Wenn es nicht zu umfangreich ist, dann bitte möglichst vollständig. Aber noch mal 'ne Frage:wenn ich auf einen der Dialoge IM DesktopPane klicke oder diese Resize, setzt sich das DesktopPane und vermutlich auch der rest zurückWas sind das eigentlich für "Dialoge"? Und meinst du damit, das passiert alles, sobald "diese Dialoge" den Fokus erhalten? Oder erst nach diversen Aktionen? Nummer 5 braucht Input... Zitieren
Aiun Geschrieben 27. September 2005 Autor Geschrieben 27. September 2005 hi, danke für die schnelle Antwort. z.Z. arbeite ich in dem DesktopPane nur mit einer Klasse, die von JInternalFrame erbt. Beim erstellen des Internalframes und bei Resize-Events des internalframes tritt der Fehler auf. Problem Gelöst ! bei Resize des Internalframes wird auch das Resize des DesktopPane ausgelöst. Zwar finde ich seltsam das es dann die Größenangabe aus dem Constraint des Layouts benutzt.... hab jetzt bei Resize des DesktopPane auch das Window-Resize ausgelöst... Hab dann auch mal an der 'richtigen' Stelle debuggen können, aber der Weg verirrte sich in der Eventqueue etz. trotzdem danke Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.