インターネットでも同様の問題が見つかりましたが、提供された解決策は機能しませんでした。
JPanelをクリアしたいです。これを行うには、描画メソッド()を呼び出さないように、フラグをfalseに設定してrepaint()
(メソッドから)呼び出します。描かれた線はまだパネル上にあります。clear()
drawLines()
同じ線を背景色で塗り直してみました。これもうまくいきませんでした。
public class WektPanel extends JPanel{
boolean check = false;
Color c = Color.BLUE;
boolean oval = false;
public WektPanel() {
setBackground(c);
setVisible(true);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(check)
drawLines(3, g);
}
void clear(){
check=false;
repaint();
}
void draw(){
check=true;
repaint();
}
void drawLines(int stroke, Graphics g){
g.drawLine(0,0,getWidth(),getHeight());
g.drawLine(0,getHeight(),getWidth(),0);
for(int i=1; i<stroke;i++){
g.drawLine(0+i,0,getWidth(),getHeight()-i);
g.drawLine(0,0+i,getWidth()-i,getHeight());
g.drawLine(0,getHeight()-i,getWidth()-i,0);
g.drawLine(0+i,getHeight(),getWidth(),0+i);
}
}
}