Mam JPanel
z funkcją paintComponent()
. Zadzwonię do niego raz, a kiedy użytkownik kliknie inny JButton
, ustawię flagę i chcę ponownie wywołać tę funkcję, ponieważ po ustawieniu flagi zrobi się coś innego.JPanel Graphics czyszczenie i malowanie?
Oto, o co się zastanawiam: jak usunąć istniejące elementy z paintComponent
? A żeby przerysować, czy mogę ponownie zadzwonić pod numer paintComponent
?
Obecnie usiłuję następujące:
flag2 = true;
repaint(); //I expect (want) paintComponent to be called again
W składnikiem farb, robię rzeczy jak:
if (flag2==true) {
g.drawRect(...);
} else {
g.drawLine(...);
}
Ale poprzez testowanie wydaje się, że coś jest nie tak z tym, co ja robić.
Dzięki za pomoc.
Nie wywołujesz odświeżania() z metody paintComponent, prawda? Czy na pewno wywołanie repaint() jest powiązane z panelem, który chcesz odświeżyć? (np. myPanel.repaint())? –