JPanel vergrößern bis JScrollPane nicht mehr zu sehen

Lirave

Aktives Mitglied
Hallo,

ich habe in einem Fenster ein JPanel, an welches ein ScrollPane angehangen ist.
In dem JPanel wird eine lokale html Datei angezeigt.

Gebe ich keine Größe des Frames an, öffnet sich nur ein sehr kleines Fenster, in dem man aber nicht die gesamte Breite der html Seite sehen kann (gesamte Höhe ist auch nicht zu sehen).

Nun wollte ich wissen, ob ihr eine Möglichkeit kennt, die Fenstergröße zu ermitteln, die notwendig ist damit an dem JPanel kein horizontaler ScrollPane angezeigt wird, ich also ein Fenster am ende habe, dass die passende horizontale Größe hat, um die lokale Html anzuzeigen.

Mfg Lirave
 
ja habe ich steht derzeit auch noch im code

Hier mal ein Bild wie es derzeit dargestellt wird.
5vu6mx5x.png



Habe es jetzt noch ein paar mal probiert, und manchmal wurde das Fenster passend in einer oder sogar auch in 2 Richtungen skaliert, aber leider klappt das nicht immer, woran könnte das liegen, und kann man es gegebenen falls ändern ?
 
Zuletzt bearbeitet:
Die PreferredSize der Komponente scheint erkannt Du zu werden. Sonst wären die Scrollbalken nicht zu sehen. Eventuell rufst Du pack() zu einem falschen Zeitpunkt auf. Für eine genauere Analyse wäre ein Bsp Code nicht schlecht.
 
Java:
import java.awt.BorderLayout;
import java.io.IOException;

import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;


public class test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		JPanel ausgabe = new JPanel(new BorderLayout());		
		JEditorPane jep = null;
		try {
			jep = new JEditorPane("file:Meine.html");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		JScrollPane scrollPanea = new JScrollPane(jep);
		ausgabe.add(scrollPanea,BorderLayout.CENTER);
		
		JFrame frame = new JFrame("Ausgabe");
		frame.getContentPane().add(ausgabe);
		frame.pack();
		frame.setLocationRelativeTo(null);
		frame.setAlwaysOnTop(true);
		//frame.setSize(600, 700); 
		frame.setVisible(true); 

	}

}
 
Vermutlich ist die GUI schon sichtbar bevor die EditorPane mit dem Laden der Daten fertig ist. Man müsste eventuell warten bis die Seite geladen ist bevor man den Frame sichtbar macht bzw. pack() darauf aufruft.
Kannst ja mal testweise folgendes vor Zeile 30 in den Code einfügen und schauen ob sich an der Größe was ändert. Das dauert jetzt zwar mindestens 5 Sekunden bis die GUI sichtbar ist, ist aber nur zum Testen gedacht. (Eventuell denn Zahlenwert ein bisschen erhöhen)
Java:
try {
	Thread.sleep(5000);
} catch (InterruptedException e) {
	e.printStackTrace();
}
 

Neue Themen


Zurück
Oben