在JAVA中定义图片数组

Python013

在JAVA中定义图片数组,第1张

为实现此意图需要分三段来实现:

1。 初始化: Image[] img=new Image[n]

for(int i=0i<ni++)循环读取装入图片文件

img[i]=Toolkit.getDefaultToolkit().createImage(....)//装入图片位置

}

2. 启动变换图片与刷新界面线程

run(){//线程入口

while(flag){

index++

index%=n(或写成if(index>n-1)index=0)

repiant()//重绘

sleep(时间)//注意要try...catch

}

}

3. 绘图,在指定x,y位置画图

int index=0

public void paint(Graphics g){

g.drawImage(img[index],x,y,this)

}

总结:

paint()方法专业绘图,就一条语句,切不可太复杂,要符合MVC模式

逻辑改变都要写到线程run方法中去,让run来改变当前需要显示的图片

如此 run负责逻辑,paint负责视图,符合MVC

不知是否是你想要的答案.

先弄个标签,在鼠标事件里加入以下代码。 private void jLabel8MouseClicked(java.awt.event.MouseEvent evt) {// 鼠标事件

JFileChooser fc=new JFileChooser()

int ret=fc.showOpenDialog(jLabel8)

if(ret==JFileChooser.APPROVE_OPTION){

File file=fc.getSelectedFile()

Icon icon=new ImageIcon(file.getPath())

jLabel8.setIcon(icon)

jLabel8.setText(file.getPath())

}//从文件中读取图 片。

假设你读取的byte[]名字为data,将其转换成图片的方法如下:

ByteArrayInputStream bis = new ByteArrayInputStream(data)

BufferedImage bi = ImageIO.read(bis)

或者

ByteArrayInputStream bis = new ByteArrayInputStream(data)

BufferedImage bi = JPEGCodec.createJPEGDecoder(bis).decodeAsBufferedImage()

顺便说一下,ImageIO的性能比较低。