G
Guest
Gast
Hi zusammen,
ich versuche gerade eine eigene Swing-Komponente zu basteln, die einen fixe Hintergrundfarbe hat und deren Schrift sich aufgrund der Größe der Komponente einstellt und anpasst.
Zu diesem Zweck habe ich von JComponent abgeleitet und die paint()-Methode überschrieben. Das erste Problem das ich habe, ist, dass sich die Hintergrundfarbe nicht ändern will. Das zweite Problem besteht offenbar darin, dass die Font-Änderung zu einer Endlosschleife führt.
Reduziert auf das wesentliche sieht es wie folgt aus:
Kann mir jemand sagen was ich falsch mache oder konkret eine Anleitung geben, wie man es besser macht?
Danke schon mal für die Hilfe
ich versuche gerade eine eigene Swing-Komponente zu basteln, die einen fixe Hintergrundfarbe hat und deren Schrift sich aufgrund der Größe der Komponente einstellt und anpasst.
Zu diesem Zweck habe ich von JComponent abgeleitet und die paint()-Methode überschrieben. Das erste Problem das ich habe, ist, dass sich die Hintergrundfarbe nicht ändern will. Das zweite Problem besteht offenbar darin, dass die Font-Änderung zu einer Endlosschleife führt.
Reduziert auf das wesentliche sieht es wie folgt aus:
Code:
public class NewComponent extends JComponent
{
private int dynHeight;
public NewComponent()
{
}
public void paint(Graphics g)
{
//Hintergrundfarbe setzen
this.setBackground(new Color(0,255,255));
this.setOpaque(true);
.....
//neue Schrift setzen mit der festgelegt Höhe
this.setFont(new Font(this.getFont().getFontName(), Font.BOLD, this.dynHeight));
.....
//Höhe von der Basis in Pixel ausgeben (zu Testzwecken)
FontMetrics metrics2 = this.getFontMetrics(this.getFont());
System.out.println("Height:" + metrics2.getAscent());
}
}
Kann mir jemand sagen was ich falsch mache oder konkret eine Anleitung geben, wie man es besser macht?
Danke schon mal für die Hilfe