Hallo,
erstmal ärgerlich, dass ich nicht Pain(t) im Titel benutzen darf :lol:
ich will dynamisch Informationen zu bestimmten Inhalten erzeugen. Das Fenster soll dabei eine passende Größe haben. Ist der Inhalt in keiner paint Methode und besteht nur aus JLabels, ist dies ganz einfach:
Nun habe ich das InformationPanel ein wenig geändert und es hat besagte Paint-Methode. Der Paint Teil hat aber keine spezifische Größe, weswegen ich mir versucht hab mit ein paar Variablen zu helfen:
Der Teil mit den FontMetrics hat jetzt erstmal keine Bedeutung und soll nur ein Beispiel sein, wie sich die Fenstergröße dynamisch ändern könnte. Das Wichtige ist das setSize, denn das funktioniert nicht so, wie ich das möchte - bzw es hat gar keine Auswirkung. Hat jemand eine Ahnung, was man hier machen kann? Ich versuch schon wie ein verrückter repaint oder revalidate aufzurufen, aber es hat keine Auswirkungen.
Ich hoffe ihr versteht mein Problem
erstmal ärgerlich, dass ich nicht Pain(t) im Titel benutzen darf :lol:
ich will dynamisch Informationen zu bestimmten Inhalten erzeugen. Das Fenster soll dabei eine passende Größe haben. Ist der Inhalt in keiner paint Methode und besteht nur aus JLabels, ist dies ganz einfach:
Code:
informationFrame = new JFrame("Informationen");
JPanel information = new InformationPanel();
informationFrame.add(information);
informationFrame.setVisible(true);
informationFrame.pack();
Nun habe ich das InformationPanel ein wenig geändert und es hat besagte Paint-Methode. Der Paint Teil hat aber keine spezifische Größe, weswegen ich mir versucht hab mit ein paar Variablen zu helfen:
Code:
public class InformationPanel extends JPanel {
@Override
public void paint(Graphics g) {
super.paintComponent(g);
int width = 0;
int height = 0;
if (this.connection == null) {
String displayString = "keine Informationen vorhanden";
g.drawString(displayString, 5, 15);
width += fontMetrics.stringWidth(displayString) + 5;
height += fontMetrics.getHeight() + 15;
}
this.setSize(new Dimension(width, height));
}
Der Teil mit den FontMetrics hat jetzt erstmal keine Bedeutung und soll nur ein Beispiel sein, wie sich die Fenstergröße dynamisch ändern könnte. Das Wichtige ist das setSize, denn das funktioniert nicht so, wie ich das möchte - bzw es hat gar keine Auswirkung. Hat jemand eine Ahnung, was man hier machen kann? Ich versuch schon wie ein verrückter repaint oder revalidate aufzurufen, aber es hat keine Auswirkungen.
Ich hoffe ihr versteht mein Problem