「java画图失真」失真图像怎么画

博主:adminadmin 2023-01-10 11:18:08 726

今天给各位分享java画图失真的知识,其中也会对失真图像怎么画进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java 在panel上画图为什么坐标错误?急求大神帮助!!

是边界或者边框问题,同时也不建议直接在JFrame上画图,应该在JPanel上直接画,因为是相对坐标,所以程序坐标不需要变动

用java画图 出现了43个错误

public TankWar{

----

public TankWar(){

这个类,

class MyTank extends Tank {

public MyTank {

super(x,y);

}

}

创建得太过牵强,没有别的属性方法,创建来干嘛

java绘图,怎么解决显示不流畅的问题?

参考:

1、采用BufferedImage对象进行缓冲

这种方法是最简单,同时也是最常用的双缓冲构建方式,也就是构建一个BufferedImage缓冲当前绘图,所有Graphics操作在其上进行,仅在需要时才将贴图paint于窗体之上,使用上再简单不过,但效率如何呢?文章进行到此处时尚不得而知。

2、采用BufferStrategy构建缓冲区

使用BufferStrategy构建缓冲能够获得系统所提供的硬件加速,Java系统会根据本地环境选择最适合的BufferStrategy。要创建 BufferStrategy ,需要使用 createBufferStrategy() 方法告诉系统你所期望的缓冲区数目(通常使用双缓冲,也就是填入“2”),并使用 getDrawGraphics() 方法在缓冲区之间进行交换,该方法返回下一个要使用的缓冲区。BufferStrategy最大的缺点与优点都在于其受本地图形环境影响,既不会出现很快的图形环境跑出很慢的FPS,也别指望很慢的图形环境跑出很快的FPS。

3、完全在BufferedImage的DataBuffer中进行图像处理

每个BufferedImage都有一个与之对应得WritableRaster对象(getRaster方法获得),通过它我们获得指定BufferedImage的DataBuffer(getDataBuffer方法获得),与方法1类似,我们同样构建一个BufferedImage缓冲当前所有绘图,所有操作都在其上进行,仅在需要时才将贴图paint于窗体之上。但区别在于,由于DataBuffer可以转化为描述BufferedImage象素点的int[],byte[]或short[]等数组集合,因此我们不再使用Java提供的Graphics对象,而是直接操作像素点进行所有绘图的实现。 但是,这样进行数组操作会快吗?

现在我们为其各自构建三个示例,尽量以比较趋同的处理流程构建,分别测算三种方法的具体效率。

java中多线程绘图后出错

个人认为应该是现成之间的问题……你说了单线程没事,

那就在你的绘制函数中加入synchronized

synchronized(this){

你的绘图方法……

}

当然 这样的话也可能出现现成死锁问题

我一般改变界面后都会调用this.repaint()

不过有人说……不好

Java画图的小问题

你的程序的问题在于你对于布局管理器不够熟悉

FlowLayout默认是顺序摆放Panel 此时布局管理器不负责修改Panel的大小

而你并没有设置你的J_JPanel的大小 所以实际上你的界面上虽然有这个面板 但是大小确实0 所以你看不到你画的这条斜线

修改方法1:去掉c.setLayout(new FlowLayout());这句

默认JFrame的ContentPane的Layout是BorderLayout BorderLayout会把中间单元拉伸至最大 这样就可以显示出你的J_JPanel了

修改方法2:给你的J_JPanel设置大小 使用setPreferredSize()既可

我推荐方法1 布局尽量让布局管理器管理

关于java画图失真和失真图像怎么画的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。