Killkrog
Lt. Junior Grade
- Registriert
- Jan. 2006
- Beiträge
- 354
Hi Jungs und Mädels.
Ich versuch's mal kurz zu machen. Ich habe eine mäßig verschachtelte GUI mit einer JTabbedPane. Obwohl verschachtelt, alles sauber runterprogrammiert. Keine "hacky" Sachen, die mit den Größen der Komponenten in irgendeiner Art und Weise rumspielen.
So, folgendes Phänomen:
Trotz Aufruf von pack() werden die Inhalte der JTabbedPane nicht korrekt dargestellt, sie sind zu klein, was im Stauchen der Inhalte resultiert. Erst wenn man mit der Maus das Fenster nur um wenige Pixel (dazu später mehr) vergrößert, werden die Inhalte korrekt angezeigt.
Habe mal einen ChangeListener an die JTabbedPane geklebt und lasse mir immer, wenn ich ein Tab auswähle, die Werte von getSize() und getPreferredSize() von jeweils der JTabbedPane und der Komponente ausgeben, die hinter dem Tab liegt:
Auffallen sollte hier der kleine Unterschied zwischen der getSize() und getPreferredSize() der Komponente. Dieser Unterschied ist auch genau derjenige, um den man das Fenster per Maus vergrößeren muss, damit alles ordentlich aussieht.
Ich kann mir das absolut nicht erklären. Hat jemand eventuell dieses Verhalten schon einmal beobachtet und kann Hilfestellung geben?
Eventuell noch ein kleines Detail: Wenn ich die Tabs nicht oben sondern links anzeigen lasse, manifestiert sich die kleine Größenabweichung auf der x-Achse und nicht mehr auf y-Achse.
Wären um jeden Vorschlag dankbar.
Lieber Gruß,
ein furchtbar verzweifeltes Killy
Ich versuch's mal kurz zu machen. Ich habe eine mäßig verschachtelte GUI mit einer JTabbedPane. Obwohl verschachtelt, alles sauber runterprogrammiert. Keine "hacky" Sachen, die mit den Größen der Komponenten in irgendeiner Art und Weise rumspielen.
So, folgendes Phänomen:
Trotz Aufruf von pack() werden die Inhalte der JTabbedPane nicht korrekt dargestellt, sie sind zu klein, was im Stauchen der Inhalte resultiert. Erst wenn man mit der Maus das Fenster nur um wenige Pixel (dazu später mehr) vergrößert, werden die Inhalte korrekt angezeigt.
Habe mal einen ChangeListener an die JTabbedPane geklebt und lasse mir immer, wenn ich ein Tab auswähle, die Werte von getSize() und getPreferredSize() von jeweils der JTabbedPane und der Komponente ausgeben, die hinter dem Tab liegt:
Code:
Component getPreferredSize() -> java.awt.Dimension[width=495,height=521]
Component getSize() -> java.awt.Dimension[width=495,height=519]
JTabbedPane getPreferredSize() -> java.awt.Dimension[width=500,height=545]
JTabbedPane getSize() -> java.awt.Dimension[width=500,height=545]
Ich kann mir das absolut nicht erklären. Hat jemand eventuell dieses Verhalten schon einmal beobachtet und kann Hilfestellung geben?
Eventuell noch ein kleines Detail: Wenn ich die Tabs nicht oben sondern links anzeigen lasse, manifestiert sich die kleine Größenabweichung auf der x-Achse und nicht mehr auf y-Achse.
Wären um jeden Vorschlag dankbar.
Lieber Gruß,
ein furchtbar verzweifeltes Killy