Hi,
Bislang habe ich eine eigene TextField Klasse angelegt, welche vom JTextField erbt und die dortige drawImage() Methode, welche für den Hintergrund zuständig ist, mit entsprechendem Parameter (meinem Hintergrundbild) überschreibt.
Kannst Du mal den Code zeigen?
Mir ist nicht klar, was Du da treibst.
Ich hätte vom Prinzip her folgendes gemacht:
Initialisierung:
Image imgStandard = ImageIO.read(new URL(getClass().getResource("standard.gif"), "standard.gif"));
Image imgHover = ImageIO.read(new URL(getClass().getResource("hover.gif"), "hover.gif"));
Image imgFocus = ImageIO.read(new URL(getClass().getResource("focus.gif"), "focus.gif"));
Image imgFocusHover = ImageIO.read(new URL(getClass().getResource("focushover.gif"), "focushover.gif"));
//usw, für jeden gewünschten Zustand ein Bild definieren ...
Image currentImage = imgStandard; //wenn die Control erzeugt wird, wird erstmal das Standard-Bild benutzt.
Die paintComponent-Methode wertet dann aus, welches Bild für diese Instanz gerade das gültige ist, und zeichnet das:
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if(currentImage != null)
{
g.drawImage(currentImage, 0,0,this.getWidth(),this.getHeight(),this);
}
}
Und im jeweiligen Event-Handler (Focus, Blur, MouseOver, MouseOut, ...) wird dann einfach nur noch currentImage auf das richtige Bild umgesetzt und ggf. noch der repaint angestoßen.
cu,
Andreas
--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.