「java绘制清除」java如何清屏
本篇文章给大家谈谈java绘制清除,以及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中如何清除绘制的图像
可以通过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如何清屏的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-22,除非注明,否则均为
原创文章,转载请注明出处。