java清空画布_java中如何清除绘制的图像 java怎样清除已画图

利用repaint()方法,它会自动调用其父类update();update()方法中paint()方法为空操作。

clearRect 方法可是可以清空一个矩形区域,但是只能清空矩形区域。要是不规则形状或是有图形覆盖的情况就不太好了。

你已经重写了 paint(Graphics) 方法的话,就可以随时调用用 repaint() 方法重绘。这样灵活性和性能都是可以满足要求的。所有要绘制的内容都动态记录给 paint 方法。具体有多种办法,Hi 我,我给你 Demo。

尽量不要重写JFrame的paint方法,会有各种问题,JFrame中的所有内容实际上都包含在contentPane里,所以定制contentPane是更好的办法

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MouseDemo3 extends JFrame implements MouseListener, MouseMotionListener {

int flag;

int x = 0;

int y = 0;

int startx, starty, endx, endy;

public MouseDemo3() {

//将contentPane修改为自己的Panel,而不是使用JFrame自带的

JPanel contentPane = new PaintPanel();

contentPane.addMouseListener(this);

contentPane.addMouseMotionListener(this);

setContentPane(contentPane);

setSize(300, 300);

// show(); 已过时的API,用setVisible代替

setVisible(true);

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

}

public void mousePressed(MouseEvent e) {

startx = e.getX();

starty = e.getY();

}

public void mouseReleased(MouseEvent e) {

endx = e.getX();

endy = e.getY();

}

public void mouseEntered(MouseEvent e) {

}

public void mouseExited(MouseEvent e) {

}

public void mouseClicked(MouseEvent e) {

}

public void mouseMoved(MouseEvent e) {

flag = 1;

x = e.getX();

y = e.getY();

repaint();

}

public void mouseDragged(MouseEvent e) {

flag = 2;

x = e.getX();

y = e.getY();

repaint();

}

public void update(Graphics g) {

g.setColor(this.getBackground());

g.fillRect(0, 0, getWidth(), getHeight());

paint(g);

}

//继承JPanel,并重写paintComponent而不是paint方法

//重写paint方法会导致该容器中的其他组件无法绘制

private class PaintPanel extends JPanel {

@Override

protected void paintComponent(Graphics g) {

g.setColor(Color.black);

if (flag == 1) {

g.drawString("鼠标坐标:(" + x + "," + y + ")", 10, 50);

g.drawLine(startx, starty, endx, endy);

}

if (flag == 2) {

g.drawString("拖拽鼠标坐标:(" + x + "," + y + ")", 10, 50);

g.drawLine(startx, starty, x, y);

}

}

}

public static void main(String[] args) {

new MouseDemo3();

}

}

先执行一下super.paintComponent(g);

或者,abstract void

clearRect(int x,

int y,

int width,

int height)

boolean draw = true;if(draw){ //绘制的代码}点击某个按钮,将draw = false;再repaint();

java中如何清除绘制的图像

: 利用repaint()方法,它会自动调用其父类update();update()方法中paint()方法为空操作.

java,怎样清除已画图形?_

: 用一个集合,把绘制过的全记录下来,在paint事件中重绘.......

java 画图前怎样清空已经绘制的图像_

: clearRect 方法可是可以清空一个矩形区域,但是只能清空矩形区域.要是不规则形状或是有图形覆盖的情况就不太好了.你已经重写了 paint(Graphics) 方法的话,就可以随时调用用 repaint() 方法重绘.这样灵活性和性能都是可以满足要求的.所有要绘制的内容都动态记录给 paint 方法.具体有多种办法,Hi 我,我给你 Demo.

java中如何清除界面上的图形

: 1.小程序中调用repaiint方法时,程序会首先清除paint()方法以前所画的内容. 2.利用clearrect(int x,int y,int width,int height)用背景色填充指定矩形达到清除该矩形的效果,相当一个“橡皮擦”采纳哦

java 中如何将画在画布上的图形清除(从canvas类继承的画布类)比如清除画在画布上的一个点?_

: 清除方法一、在图片的位置接着画一个矩形覆盖这个图片,并且把颜色设置成和背景色一样就OK了!代码如下:context.fillStyle="ffffff";//白色为例子;context.fillRect(400,100,400,100);注意,上面的代码要放在imageObj.onload里面才有效果;清除的方法二、用clearRect()方法,代码如下:context.clearRect(400,100,imageObj.width,100);//清除画布上的指定区域;注意,上面的代码要放在imageObj.onload里面才有效果;

java怎么清除图形界面

: 1.小程序中调用repaiint方法时,程序会首先清除paint()方法以前所画的内容. 2.利用clearRect(int x,int y,int width,int height)用背景色填充指定矩形达到清除该矩形的效果,相当一个“橡皮擦”采纳哦

如何消除java里的图片

: 可以通过repaint方法来进行重新绘图,也就是清除了当前所绘制的图案.解释:repaint方法,实际上它是实现的父类update方法,在update方法中paint方法为空操作.所以此时即可实现重新绘制图像的效果.

java JPanel如何清除上面的图案

: 如果想要清除绘制在JPanel上的图象的话,可以直接调用JPanel类的repaint()方法,即可完成清除工作;如果是想要清楚该容器中的子组件的话可以调用remove()或removeAll()方法,注意参数类型.

java中画板上画一条线,怎么能实现画线清除掉原来的线

: 绘制新的线条的时候直接覆盖掉原来的线条就可以

java 画方块时怎么把之前画的去掉

: 额,这个就是直接在画布上涂满背景色,比如背景为黑, 画完时候就直接将整个画区.setColor(Color.black); , 同理,如果已经画了一个白色方块,想直接清除白色方块,而不影响周围的话,就直接在白色方块的区域 画一个黑色方块(假设黑色为背景色)

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值