Tôi có một JPanel
với chức năng paintComponent()
. Tôi sẽ gọi nó một lần, sau đó khi người dùng nhấp vào một khác nhau JButton
, tôi sẽ đặt một số cờ và muốn gọi lại chức năng này vì nó sẽ làm điều gì đó hơi khác sau khi cờ được đặt.Xóa đồ họa và sơn lại đồ họa của JPanel?
Vì vậy, đây là những gì tôi tự hỏi: làm cách nào để xóa nội dung hiện có từ paintComponent
? Và để vẽ lại, tôi có gọi lại số paintComponent
không?
Hiện nay tôi đang cố gắng như sau:
flag2 = true;
repaint(); //I expect (want) paintComponent to be called again
Trong thành phần sơn, tôi làm công cụ như:
if (flag2==true) {
g.drawRect(...);
} else {
g.drawLine(...);
}
Nhưng qua thử nghiệm nó có vẻ như có cái gì đó sai trái với những gì tôi đang làm.
Cảm ơn bạn đã được trợ giúp.
Bạn không gọi repaint() từ bên trong phương thức paintComponent, phải không? Bạn có chắc chắn cuộc gọi repaint() được liên kết với bảng điều khiển bạn muốn làm mới không? (ví dụ: myPanel.repaint())? –