「java清空画布」怎么清空画布
本篇文章给大家谈谈java清空画布,以及怎么清空画布对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java 调用repaint()会先清空画布吗
- 2、Java 中的panel()面板有什么用,怎么用。
- 3、java中鼠标拖动画矩形怎么消除拖动的痕迹,最后只得到一个矩形框
- 4、java 画图前怎样清空已经绘制的图像
- 5、JAVA清除画布
- 6、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清空画布的信息别忘了在本站进行查找喔。