DarthShader
Erfahrenes Mitglied
Hallo,
ich habe in meinen Java Swing Programm ein einfach klingendes, aber für mich gerade schwer zu Lösendes Problem.
In einem normalen ScrollPane habe ich eine Komponente gelegt, welche ich selbst erstellt habe, abgeleitet von einem JPanel. Diese Komponente erstellt ihren Inhalt dynamisch je nach Parameter - im Prinzip werden nur JLabels untereinander in der JPanel gelegt. Mein Problem ist nun, dass ich ja die Größe dieses JPAnels per setPreferredSize festlegen muss, damit der Scrollbalken des umgebenen JScrollPane auch richtig funktioniert, denn der ViewPortView, was ja mein JPanel ist, "wächst" ja dynamisch nach unten.
Als Layoutmanager des JPanels habe ich TableLayout gewählt. Mein Problem ist, dass ich nicht genau weiß, zu welchem Zeitpunkt bzw. wo ich genau die preferred Höhe dieses JPanels setzen muss. Das ganze liegt in einem JDialog, und erst nachdem ich setVisible angewendet habe, berechnet der Layoutmanager die enthaltenen Größen und Positionen des JLabels (innerhalb des JPanels). Und erst danach kann ich ja überhaupt die Höhe alle Komponenten rausbekommen.
Nur, wann ist das? Sobald ich setVisible anwende bei einem modalen Dialog, kann ich janichts mehr machen, erst wenn der Dialog wieder geschlossen ist. Kann ich vielleicht irgendeine Methode des Dialogs oder meiner Komponente (die im ScrollPane liegt) überschreiben und dort die Höhe berechnen?
P.S. Im Prinzip macht die JTable das ja auch, wenn sie in einem JScrollPane liegt - neue Zeilen kommen hinzu, und die JTable Komponente wird nach unten vergrößert, sodass das ScrollPane entsprechend scrollen musss.
Ich würde mich über Hilfe sehr freuen
Vielen Dank!
ich habe in meinen Java Swing Programm ein einfach klingendes, aber für mich gerade schwer zu Lösendes Problem.
In einem normalen ScrollPane habe ich eine Komponente gelegt, welche ich selbst erstellt habe, abgeleitet von einem JPanel. Diese Komponente erstellt ihren Inhalt dynamisch je nach Parameter - im Prinzip werden nur JLabels untereinander in der JPanel gelegt. Mein Problem ist nun, dass ich ja die Größe dieses JPAnels per setPreferredSize festlegen muss, damit der Scrollbalken des umgebenen JScrollPane auch richtig funktioniert, denn der ViewPortView, was ja mein JPanel ist, "wächst" ja dynamisch nach unten.
Als Layoutmanager des JPanels habe ich TableLayout gewählt. Mein Problem ist, dass ich nicht genau weiß, zu welchem Zeitpunkt bzw. wo ich genau die preferred Höhe dieses JPanels setzen muss. Das ganze liegt in einem JDialog, und erst nachdem ich setVisible angewendet habe, berechnet der Layoutmanager die enthaltenen Größen und Positionen des JLabels (innerhalb des JPanels). Und erst danach kann ich ja überhaupt die Höhe alle Komponenten rausbekommen.
Nur, wann ist das? Sobald ich setVisible anwende bei einem modalen Dialog, kann ich janichts mehr machen, erst wenn der Dialog wieder geschlossen ist. Kann ich vielleicht irgendeine Methode des Dialogs oder meiner Komponente (die im ScrollPane liegt) überschreiben und dort die Höhe berechnen?
P.S. Im Prinzip macht die JTable das ja auch, wenn sie in einem JScrollPane liegt - neue Zeilen kommen hinzu, und die JTable Komponente wird nach unten vergrößert, sodass das ScrollPane entsprechend scrollen musss.
Ich würde mich über Hilfe sehr freuen
Vielen Dank!