如何在绘制图形对象后清除面板?

时间:2015-05-18 12:59:37

标签: java

我有一个面板,我在其中使用paintComponent方法绘制了许多图形对象,并使用Graphics方法绘制。

我需要创建一个按钮,然后单击它然后清除面板。 例如:

JButton clear = new JButton("Clear");
public void actionPerformed(ActionEvent e){
 if(e.getSource()==clear){
   //button code here
   }
}

我需要的是IF语句中的代码。

3 个答案:

答案 0 :(得分:0)

每次调用重绘时都会调用paintComponent方法,并且此方法每次都会绘制您在其中写入的内容。如果要清除对象的屏幕,则必须从面板中删除对象(例如按钮)/按钮单击功能上的框架。

使用boolean等在paintComponent方法中编写逻辑代码不是一个好习惯。

答案 1 :(得分:0)

做这样的事情:

private boolean clear = false;

public void paintComponent(Graphics g) {
    super.paintComponent(g);
    if(clear)
        return;
    }
    // all your graphics here

}


public void actionPerformed(ActionEvent e){
   if(e.getSource()==clearButton){
       clear = true;
       repaint();
   }
}

当您想允许绘图时,不要忘记在程序的某个位置更改clear标志。

答案 2 :(得分:0)

查看Custom Painting Approaches了解自定义绘画的两种常用方法:

  1. 绘制List中包含的对象,在这种情况下,您将清除List
  2. 绘制到BufferedImage上,在这种情况下,您将清除BufferedImage
  3. 示例代码显示了在两种情况下如何“清除”。