Drawing graphics on top of a JButton
Posted
by trinth
on Stack Overflow
See other posts from Stack Overflow
or by trinth
Published on 2010-03-09T06:14:46Z
Indexed on
2010/03/09
6:21 UTC
Read the original article
Hit count: 272
I have a situation wherein I have a bunch of JButtons on a GridLayout. I need each of the JButtons to have:
- a background image (but retain the ability to keep the default button look if needed)
- custom graphics drawn on top by other classes
I have no trouble with the background image, since I am using setIcon() but I am having problems drawing things on top of the background. At one point I was able to draw on top of the button, but after the button was clicked, the drawings disappeared. How can make the button keep this drawing state?
Basically, I need a way for my JButtons to have public methods that would allow another class to draw anything on it such as:
public void drawSomething() {
Graphics g = this.getGraphics();
g.drawOval(3,2,2,2);
repaint();
}
or
public Graphics getGraphics() {
return this.getGraphics();
}
then another class could do this:
button.getGraphics().drawSomething();
The latter is more what I am looking for but the first is equally useful.
Is there any way to go about this? Also, overriding the parent class method paintComponent() doesn't help since I need each button to have different graphics.
© Stack Overflow or respective owner