gpt4 book ai didi

java - 在小程序中绘制图像

转载 作者:行者123 更新时间:2023-11-30 09:36:31 26 4
gpt4 key购买 nike

我在小程序中绘制图像时遇到问题。我想在小程序中一张一张地显示所有图像,但它只显示我的代码在下面给出的文件夹的最后一张图像。

public class ImageInSwingTest extends JApplet
{
String filePath="C:\\Users\\yogi\\Pictures\\pictures"; //all .png files more than 200 files
String files;
File folder=new File(filePath);
File[] listOfFiles;
Image m;

@Override
public void init()
{
listOfFiles=folder.listFiles();
for(int i=0;i<listOfFiles.length;i++)
{
if(listOfFiles[i].isFile())
{
files=listOfFiles[i].getName();
if(files.endsWith(".png"))
{
String filepath=listOfFiles[i].getAbsolutePath();
System.out.println(filepath);
try {
m = ImageIO.read(new File(filepath));
paint(ImageInSwingTest.this.getGraphics());

} catch (IOException ex) {
Logger.getLogger(ImageInSwingTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

}
}
public void paint(Graphics g)
{
g.drawImage(m, 0, 0, this);

}

}

所以,谁能告诉我如何一张一张地显示所有图像。?谢谢。

最佳答案

so, please can any one tell me how can i display all images one by one.? Thanks.

  • 因为每个循环都在 for(int i=0;i<listOfFiles.length;i++) 中替换 JApplet的内容

  • JPanelJApplet

  • ImagesIcon[] 的数组

  • IconJLabel

  • 使用 GridLayout用于放置 JLabelIconsJPanel

  • 不要画到 JApplet直接使用 JPanelJComponent使用覆盖方法 paintComponent()而不是 paint()

编辑

actually i want all images to replace each other so all images are look like playing movie

  • 你必须在 Thread.sleep(int); 之前暂停这个过程

  • 您可以使用 Thread.sleep(int);里面SwingWorkerRunnable#Thread ,

  • 不要使用 Thread.sleep(int); Swing GUI 中的其他方式,因为要阻止事件调度线程,并且可能不会绘制任何内容或只绘制最后一张图像

  • Runnable#Thread会更好更简单,但是 Runnable#Thread 的任何输出到 Swing GUI,你必须包装 JLabel.setIcon(myIcon)invokeLater

关于java - 在小程序中绘制图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10717006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com