java需求:我在面板中用paint()方法画图,如果画错了需要用什么方法清空,求大神指教一下。

我准备添加一个清除按钮,但是需要什么方法呢... 我准备添加一个清除按钮,但是需要什么方法呢 展开
 我来答
hitzsf
2014-04-10 · TA获得超过2060个赞
知道大有可为答主
回答量:1741
采纳率:78%
帮助的人:1165万
展开全部


import java.awt.event.*;
import java.util.Random;
import javax.swing.*;

class DrawlinePanelClass extends JPanel {
int x1, x2, y1, y2;
Color color = Color.BLACK;
public DrawlinePanelClass() {
this.setBackground(Color.WHITE);
addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseMoved(MouseEvent event) {
};
@Override
public void mouseDragged(MouseEvent event) {

Graphics2D g = (Graphics2D) getGraphics();
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.setColor(color);
x2 = event.getX();
y2 = event.getY();
g.drawLine(x1, y1, x2, y2);
x1 = x2;
y1 = y2;
g.dispose();
}
});
addMouseListener(new MouseAdapter() {
Random r = new Random();
@Override
public void mousePressed(MouseEvent event) {
x1 = event.getX();
y1 = event.getY();
color = new Color(r.nextInt(256),r.nextInt(256),r.nextInt(256));
}
});
}
}

public class DrawlineFrameClass extends JFrame {
JPanel panel1;
JButton cButton;

public DrawlineFrameClass() {
super("Drawline绘制工具");
final DrawlinePanelClass panel = new DrawlinePanelClass();
panel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
panel1 = new JPanel();
cButton = new JButton("清除");
panel1.add(cButton);
cButton.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
panel.repaint();
}
});
getContentPane().add(panel);
getContentPane().add(panel1, "South");
setSize(800, 600);
setVisible(true);
setResizable(false);
this.setDefaultCloseOperation(3);
}
public static void main(String[] args) {
new DrawlineFrameClass();
}
}
更多追问追答
追问

你的程序有问题,你什么意思

追答
有几个网友都在弄类似的画图清空程序,
我还以为你也是在弄这个程序呢,或许我搞错了吧
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式