「java清空画布」怎么清空画布

博主:adminadmin 2023-01-20 11:00:13 445

本篇文章给大家谈谈java清空画布,以及怎么清空画布对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 调用repaint()会先清空画布吗

其实repaint()的内部原理是先调用update()方法再调用了paint()方法了。所以不是清空的,而是更新

Java 中的panel()面板有什么用,怎么用。

//Jpanel和panel都为中间层容器,可显示文字、图像、绘制图形,主要功能是

在GUI中组织其他组件。但无边框,丌能做独立窗口。 以Jpanel为例,给一个曾经的实例

//MyPanel.java

import java.awt.*;

import javax.swing.*;

import java.util.Random;

public class MyPanel extends JPanel {

private Circle circle[];

public MyPanel() {

setBackground(Color.black);   // 面板背景色

setPreferredSize(new Dimension(600,450));   // 面板大小     

int numCircle=new Random().nextInt(6)+5;

//int numCircle=circle.length;

circle=new Circle[numCircle];

for(int i=0;inumCircle;i++){ // 创建圆的实例

Color color=new Color(new Random().nextInt(256),new Random().nextInt(256),new Random().nextInt(256));

circle[i]=new Circle(new Random().nextInt(50)+10,color,new Random().nextInt(420)+61,new Random().nextInt(320)+61);

}

}

/* 每个JPanel对象都有painComponent方法,绘制添加在容器上的组件, 在

*  组件首次显示或重新显示时被自动调用。

*/

public void paintComponent(Graphics g) {

super.paintComponent(g); 

// 调用父类方法, 清空画布,绘制背景色

setFont(new Font ("Times New Roman",Font.BOLD,20));   // 设置字体

g.setColor(Color.pink);

g.drawString("Hello World!",250,200);

for(int i=0;icircle.length;i++){

circle[i].draw(g);

}

}

}

//Circle.java

import java.awt.*;

/**此类定义了绘制圆的基本方法

*@author  JF

*@version 1.0

*/

public class Circle {

// 直径和圆外接正方形左上角坐标

private int diameter,x,y;

// 指定圆的大小和位置

private Color color;   // 颜色

public Circle(){

}

/**构造函数,设置圆类的属性

*@param int diameter,Color color,int x,int y

*@return none

*/

Circle(int diameter,Color color,int x,int y ){

this.diameter=diameter;

this.color=color;

this.x=x;

this.y=y;

}

/**填充圆类

*@param Graphics

*@return none

*/

public void draw(Graphics g){

g.setColor(color);

g.fillOval(x,y,diameter,diameter);

}

}

//MyCircle.java

import javax.swing.*;

public class MyCircle{

public static void main(String[] args){

JFrame f=new JFrame("Circle");

f.setVisible(true);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.getContentPane().add(new MyPanel());

f.pack();

}

}

java中鼠标拖动画矩形怎么消除拖动的痕迹,最后只得到一个矩形框

这需要对鼠标事件有一定的了解,首先实现鼠标按下和抬起两个事件,按下时记录矩形的起始位置,抬起时记录矩形的最终位置,两个坐标值相减,得到矩形的高度和宽度即可最终确定一个矩形,画出来。

另外最重要的部分是实现拖动痕迹的处理,需要实现的的鼠标拖动的事件(具体可以进行判断比如按住左键拖动,右键拖动等),还记得鼠标按下的事件记录的矩形其实位置吧,拖动事件需要记录当前矩形的位置,两个坐标值相减,得到矩形的高度和宽度即可最终确定一个矩形,画出来。

问题就来了,那就是有两个矩形了,这时在鼠标抬起的事件中删除一个拖动痕迹的矩形。

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

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

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

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清空画布的信息别忘了在本站进行查找喔。