Hallo Leute,
Irgendwas läuft bei mir falsch, nur leider verstehe ich nicht was. Es geht darum, dass ich ein JFormattedTextfield um eine Grafik erweitern möchte, die signalisiert, dass ein ungültiger Wert eingetragen wurde.Das Problem ist vermutlich, dass sich die Grafik zum Teil im Textfeld, zum Teil ausserhalb des Textfeldes befinden soll.
Aber seht selbst, so ist es gewünscht:
Wenn nun aber ein ungültiger Wert eingetragen wird, dann sieht das Textfeld leider so aus:
Man kann erkennen, dass das Kreuz zum Teil angezeigt wird, aber eben nur innerhalb des Textfeldes. Sobald ich das Fenster resize sieht es korrekt aus.
Ich hab es schon mit setOpaque(false) und ich weiß nicht was allem probiert, aber es will nicht.
So sieht meine paintComponent(Graphics g) aus:
Wie gesagt, opaque ist momentan true.
Hat jmd. schonmal soetwas gemacht und kann mir einen hilfreichen Tipp geben? Vielen Dank!
Gruß, Christophe
Irgendwas läuft bei mir falsch, nur leider verstehe ich nicht was. Es geht darum, dass ich ein JFormattedTextfield um eine Grafik erweitern möchte, die signalisiert, dass ein ungültiger Wert eingetragen wurde.Das Problem ist vermutlich, dass sich die Grafik zum Teil im Textfeld, zum Teil ausserhalb des Textfeldes befinden soll.
Aber seht selbst, so ist es gewünscht:
Wenn nun aber ein ungültiger Wert eingetragen wird, dann sieht das Textfeld leider so aus:
Man kann erkennen, dass das Kreuz zum Teil angezeigt wird, aber eben nur innerhalb des Textfeldes. Sobald ich das Fenster resize sieht es korrekt aus.
Ich hab es schon mit setOpaque(false) und ich weiß nicht was allem probiert, aber es will nicht.
So sieht meine paintComponent(Graphics g) aus:
Code:
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setClip(null);
Dimension d = getSize();
setBorder(new LineBorder(Color.BLACK));
if (isRequired()) {
setBorder(new LineBorder(Color.BLUE));
g.drawImage(IMG_ASTERISK_BLUE, -4, 0, this);
}
if (isFaulty()) {
setBorder(new LineBorder(Color.RED));
g.drawImage(IMG_ERROR, -4, getHeight() - 7, this);
}
setPreferredSize(d);
}
Wie gesagt, opaque ist momentan true.
Hat jmd. schonmal soetwas gemacht und kann mir einen hilfreichen Tipp geben? Vielen Dank!
Gruß, Christophe