「java绘制清除」java如何清屏

博主:adminadmin 2022-11-22 09:04:06 48

本篇文章给大家谈谈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绘制清除」java如何清屏

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如何清屏的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。