I have a JPanel
with a paintComponent()
function. I\'ll call it once, then when the user clicks a different JButton
, I\'ll set some fl
When you change a property of the panel then you need to invoke:
panel.repaint();
to cause the component to be repainted.
Then the first statement in the paintComponent() method should be:
super.paintComponent(g);
This will paint the background so you can now do your custom painting.
If you need more help then post your SSCCE that demonstrates the problem.
I would suggest calling revalidate(); instead of repaint(). revalidate() needs to be called when changing the size / layout or when you add/remove objects onto your jpanel and will update all of it's children. From what I can tell, you're still using the same paint object tho but changing it's layout.
To clear all previously drawn graphics, invoke g.clearRect(0, 0, getWidth(), getHeight()).
First, why not use an enum instead of a boolean?
enum Enum {
RECTANGLE,
LINE,
CIRCLE
}
Enum choice = RECTANGLE; //default to RECTANGLE
switch(choice) {
// case RECTANGLE, LINE, CIRCLE
}
With regards to your issue, can you answer my comments in your question?