java - 如何在 java 中将 .TIF 图像设置为 ImageIcon?

标签 java swing jlist

谁能建议我如何将 .TIF 格式的图像存储到 ImageIcon 并将该图像添加到列表模型?我试过了,但给了我 java.lang.NullPointerException

  public static void main(String[] args) throws Exception {
    String path = "C:\\project\\aimages";
    JFrame frame = new JFrame();
    frame.setSize(500, 500);
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

    File folder = new File(path);
    File[] listOfFiles = folder.listFiles();
    DefaultListModel listModel = new DefaultListModel();
    System.out.println("listOfFiles.length="+listOfFiles.length);
    int count = 0;
    for (int i = 0; i < listOfFiles.length; i++) {
        //System.out.println("check path"+listOfFiles[i]);
        String name = listOfFiles[i].toString();
         System.out.println("name"+name);
        // load only JPEGs
        if (name.endsWith("jpg") || name.endsWith("JPG")|| name.endsWith("tif") || name.endsWith("TIF")) {
            if(name.endsWith("tif") || name.endsWith("TIF"))
            { 
                BufferedImage image = ImageIO.read(listOfFiles[i]);
           BufferedImage convertedImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
              ImageIcon ii = new ImageIcon(image);
                    Image img1 = ii.getImage();
                Image newimg = img1.getScaledInstance(75, 75, java.awt.Image.SCALE_SMOOTH);
                   ImageIcon newIcon = new ImageIcon(img1);
                  listModel.add(count++, newIcon);
            }
            else
            {
              ImageIcon ii = new ImageIcon(ImageIO.read(listOfFiles[i]));
              Image img1 = ii.getImage();
              Image newimg = img1.getScaledInstance(75, 75, java.awt.Image.SCALE_SMOOTH);
              ImageIcon newIcon = new ImageIcon(newimg);
             listModel.add(count++, newIcon);
            }
        }
    }
    JList p2 = new JList(listModel);

    }
     }

我在这里编辑了我的代码,这是我的错误消息 线程“main”中的异常 java.lang.NullPointerException 在 javax.swing.ImageIcon.(ImageIcon.java:228) 在 ListImage1.main(ListImage1.java:48)

最佳答案

如果 TIFF 是应用程序资源,最好将其转换为 JPG 或 PNG。

OTOH,我相信JAI提供对阅读 TIFF 的支持。

关于java - 如何在 java 中将 .TIF 图像设置为 ImageIcon?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9634472/

相关文章:

java - 如何从 "timestamp without time zone"字段收集到没有时区的 Java 时间戳

运行时出现 java.lang.NoClassDefFoundError : Need Class not on Classpath

java - J面板尺寸不正确

java - JScrollPane - 自动滚动到底部?

java - 将项目添加到另一个类的现有 jlist

java - Java 中的并发下载计数器

Java 的 JavaScript 引擎

java - 我可以在 Java Swing 上使用 websocket 吗?

java - 我怎样才能像左键单击一样右键单击 Java JList 的单元格来选择该单元格?

java - 当拖动超出其列表末尾时,如何防止 JList 选择元素?