「java清空绘制」java怎么清空对象
本篇文章给大家谈谈java清空绘制,以及java怎么清空对象对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、JAVA清除画布
- 2、java 中如何将画在画布上的图形清除(从canvas类继承的画布类)比如清除画在画布上的一个点?
- 3、java 画图前怎样清空已经绘制的图像
- 4、java中如何清除绘制的图像
- 5、java,怎样清除已画图形?
JAVA清除画布
1.repaint 概念
重绘此组件。如果组件是轻量组件,则此方法会尽快调用此组件的 paint 方法。
否则此方法会尽快调用此组件的 update 方法。
2.repaint方法
1.public void repaint()
2.public void repaint(long tm)
//指定调用update方法之前等待的最大毫秒数tm
3.public void repaint(int x,int y,int width,int height)
//重绘组件的指定矩形区域
4.public void repaint(ling tm,int x,int y,int width,int height)
注:repaint方法不总是马上执行,Java虽然会尽可能快的执行repaint,
当Applet运行在较慢的平台上或计算机较忙时,
应该考虑使用第2或4种repaint方法,
指定在多长时间内必须执行repaint,否则就放弃。
3.工作原理
repaint()方法
|
|
V
AWT线程---paint()方法--图形绘制
|
|
V
update()方法---paint()方法--图形绘制
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 画图前怎样清空已经绘制的图像
clearRect 方法可是可以清空一个矩形区域,但是只能清空矩形区域。要是不规则形状或是有图形覆盖的情况就不太好了。
你已经重写了 paint(Graphics) 方法的话,就可以随时调用用 repaint() 方法重绘。这样灵活性和性能都是可以满足要求的。所有要绘制的内容都动态记录给 paint 方法。具体有多种办法,Hi 我,我给你 Demo。
java中如何清除绘制的图像
可以通过repaint方法来进行重新绘图,也就是清除了当前所绘制的图案。
解释:repaint方法,实际上它是实现的父类update方法,在update方法中paint方法为空操作。所以此时即可实现重新绘制图像的效果。
java,怎样清除已画图形?
尽量不要重写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();
}
}
关于java清空绘制和java怎么清空对象的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。