有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一个面板,其中我使用paintComponent方法和graphics方法绘制了许多图形对象

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

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

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


共 (3) 个答案

  1. # 1 楼答案

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

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

  2. # 2 楼答案

    查看Custom Painting Approaches了解定制绘画的两种常见方法:

    1. 绘制列表中包含的对象,在这种情况下,您将清除该列表
    2. 在BuffereImage上绘制,在这种情况下,您将清除BuffereImage

    示例代码显示了在这两种情况下“清除”的方式

  3. # 3 楼答案

    这样做:

    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标志