我有一个面板,我在其中使用paintComponent方法绘制了许多图形对象,并使用Graphics方法绘制。
我需要创建一个按钮,然后单击它然后清除面板。 例如:
JButton clear = new JButton("Clear");
public void actionPerformed(ActionEvent e){
if(e.getSource()==clear){
//button code here
}
}
我需要的是IF语句中的代码。
答案 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了解自定义绘画的两种常用方法:
示例代码显示了在两种情况下如何“清除”。