Java:Jpanel 缓冲区 图像

这是一个非常常用的东西

主要是重写JPanel中的paint(Graphics g)方法实现的。

0 写一个类继承JPanel

public class WSModePlane extends JPanel

1 获取缓冲区

首先需要获得JPanel的缓冲区,这样才能在JPanel中画图:

bfimage = (BufferedImage) this.createImage(this.getWidth(),this.getHeight());


这样我们就获得了缓冲区了bfimage。这里的this就是要被画图的Jpanel

2 实现图像处理

而后我们用BufferImage提供的相应函数画图,或者是执行图像处理算法

设置像素点颜色:

bfimage.setRGB(pln, pcol, 0xff0000)
获取像素点颜色:

public int getRGB(int x,int y)
注:ARBG使用一个32位整数保存的,每个参数8位
等等,通过API手册可以查询到相应函数

当然我们也可用Grahics 画图

Graphics bfg = bfimage.getGraphics();

比如画直线

bfg.drawLine(x1,y1,x2,y2);
注意这里实在缓冲区画的,并没有画到Jpanel上面

3 传入Jpanel

重写Jpanel 的 paint函数,将缓冲区中的东西画到Jpanel对应的Graphics上面就行啦 

@Override
	public void paint(Graphics g) {
		g.drawImage(bfimage, 0, 0, null);
	}
4 图像变化

如果需要变化图像,只要改动缓冲区 就是这里的 bfimage,然后调用Jpanel的repaint()函数,就行。非常方便!

wsmodePlane.repaint();

看完后评价是美德~

可以加QQ 993830638讨论 ,很高兴能帮助你!



展开阅读全文

没有更多推荐了,返回首页