将带有图像的 JLabel 添加到 JList 以显示所有图像

2023-12-04

这是我的代码。它不在框架中显示图像,而是显示一些文本。有人会建议我应该在代码中进行哪些更改,以便它允许我在框架中显示图像吗?

import java.awt.Component;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.DefaultListModel;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;

public class ListView {


public static void main(String[] args) throws IOException {
    JFrame frame=new JFrame();
    frame.setSize(500,500);
    JLabel lbl[] = new JLabel[10];
    DefaultListModel listModel;
     ImageIcon[] b = new   ImageIcon[10];
    //JList lsm=new JList();
    listModel = new DefaultListModel();
     File folder = new File("C:/Documents and Settings/All Users/Documents/My Pictures/Sample Pictures");
     File[] listOfFiles = folder.listFiles();
      JLabel[] lb=new JLabel[15];
    for (int i = 0; i < listOfFiles.length; i++) 
    {
          System.out.println("chek panth"+listOfFiles[i].getName().toString());
  //      b[i] = ImageIO.read(new File("C:/Documents and Settings/All Users/Documents/My Pictures/Sample Pictures/" + listOfFiles[i].getName().toString()));
         b[i] = new ImageIcon("C:/Documents and Settings/All Users/Documents/My Pictures/Sample Pictures/" + listOfFiles[i].getName().toString());
         lb[i]=new JLabel(b[i]);
         listModel.add(i, lb[i]);

    }
    JList lsm=new JList(listModel);

    Component add = frame.add(new JScrollPane(lsm));

    frame.setVisible(true);

}


}

请注意,我不会以这种方式设计代码,但我希望使其尽可能接近原始代码,同时使其能够在基于 Windows 的盒子上显示图像列表。

ListView

import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.*;

import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class ListView {

    public static void main(String[] args) throws IOException {
        String path = "C:/Documents and Settings/All Users/Documents/" +
            "My Pictures/Sample Pictures";
        JFrame frame=new JFrame();
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

        File folder = new File(path);
        File[] listOfFiles = folder.listFiles();
        DefaultListModel listModel = new DefaultListModel();
        int count = 0;
        for (int i = 0; i < listOfFiles.length; i++)
        {
            System.out.println("check path"+listOfFiles[i]);
            String name = listOfFiles[i].toString();
            // load only JPEGs
            if ( name.endsWith("jpg") ) {
                ImageIcon ii = new ImageIcon(ImageIO.read(listOfFiles[i]));
                listModel.add(count++, ii);
            }
        }
        JList lsm=new JList(listModel);
        lsm.setVisibleRowCount(1);

        frame.add(new JScrollPane(lsm));

        frame.pack();
        frame.setVisible(true);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将带有图像的 JLabel 添加到 JList 以显示所有图像 的相关文章

随机推荐

  • __LITTLE_ENDIAN_BITFIELD 和 __BIG_ENDIAN_BITFIELD? [复制]

    这个问题在这里已经有答案了 我想知道内核编译器将如何处理不同的字节序位域 struct iphdr if defined LITTLE ENDIAN BITFIELD u8 ihl 4 version 4 elif defined BIG
  • 将 SetFields 与 MongoDB C# 驱动程序 2.0 结合使用

    使用旧驱动程序 我可以指定要从查询返回的字段 如下所示 var cursor Collection Find query SetFields Fields
  • 将索引添加到 Google App Engine 上数据存储区中已存在的实体属性

    我知道您应该将 Index 添加到实体模型中的所有属性以添加索引 但是如果您忘记并且数据存储中已经存在实体的实时写入怎么办 有没有办法通过开发人员控制台或其他方式手动向所有这些属性添加索引 我发现 如果您将 Index 添加到实体并重新部署
  • 如何在 Jaxb 中忽略 XML 中的某些标签

    我的xml文件如下
  • 使用 java 和 iText 签署 PDF 哈希值

    我有一个生成 PDF 的应用程序 需要签名 我们没有用于签署文档的证书 因为它们位于 HSM 中 而我们使用证书的唯一方法是使用 Web 服务 PdfReader reader new PdfReader src reader setApp
  • 无法让 pysnmp 与 pyinstaller 一起使用

    尝试让 pyinstaller 与 pysnmp 一起使用这是规范文件 mode python a Analysis app py pathex home robertja pysnmp hiddenimports None hookspa
  • 在 scipy 中重现 sox 频谱图

    例如 我有一个带有语音的 wav 文件 我可以使用 sox 创建漂亮的频谱图可视化 wget https google github io tacotron publications tacotron2 demos romance gt w
  • BitBlt - 使用另一个应用程序的 HDC 时捕获的像素全为零 (bgra)

    由于 Nick Nougat 的答案中的代码 我可以使用 BitBlt 和 GetDIBits 成功捕获部分屏幕here 捕获整个屏幕或桌面似乎可行 但是当我提供应用程序的 HDC 时 它会打印奇怪的数据 以 bgra 格式 HWND de
  • IE8 中的无表表格布局

    有没有办法复制exactly这个布局没有表格 仅使用CSS和div 没有Javascript IE8 http jsfiddle net u0u7snh6 2 我尝试过多种场景IE8似乎很混乱 Height of the content c
  • C# MessageBox 导致按键处理程序忽略 SuppressKeyPress

    考虑具有以下组件的 Windows 窗体应用程序 partial class Form1 private System Windows Forms TextBox textBox new System Windows Forms TextB
  • 将整个工作簿另存为 PDF Excel 2010 (C#)

    无论如何 有没有办法将整个工作簿保存为 excel 中的 pdf 格式 我找到了这个 http msdn microsoft com en us library bb407651 v office 12 aspx 但它并没有确切地告诉您是将
  • 类似于 HtmlUnit 的 C# 库

    我需要编写独立的应用程序来 浏览 外部资源 C 中是否有自动处理 cookie 并支持 JavaScript 的库 我相信不需要通过 JS 主要目标是保持会话活动并提交表单 以便我可以通过多步骤注册过程或在登录后 浏览 网站 我查看了 Ht
  • Pandas Wide_to_long,id变量需要唯一标识每一行

    假设我有一个像这样的数据框 ID Time1 Value1 Time2 Value2 Time3 Value3 1 2 1 1 3 1 2 4 1 3 1 5 2 1 6 2 2 7 2 3 预期的数据框是这样的 ID Time Value
  • 将 4 个字符的字符串转换为 int32

    有没有一种快速的方法将 4 个字符转换为 32 位 int 我知道我可以像这样循环它 string key ABCD int val 0 for int i 0 i lt 4 i int b int key i int Math Pow 2
  • 如何在 Java GUI 中用鼠标光标拖动图像?

    我的代码调用目录中的 n 个图像来放置在 JPanel 上 public void imageAdder int n String name BufferedImage myPic null for int i 0 i lt n i try
  • mysql 搜索多列

    下面显示了名为 posts 的表中三列 上午 下午和晚上 的数据如何存储 假设用户想要搜索以下匹配的记录 早上 周一 周二 下午 周一 Mysql 查询必须在所有三列中搜索这些匹配的数据 我设法对单列执行此操作 例如 下午 但是如何更改我的
  • JavaScript数组长度为0

    我遇到了一些奇怪的行为 如下所示 它显示数组长度为 0 尽管在它之前打印它表明长度显然大于 0 var getTopSelection function callback var topSelection for var i 0 i lt
  • 如何设置 os x 中的应用程序使用的 $PATH

    我正在使用 ant 构建我的项目 并使用 svnversion 可执行文件将版本 ID 插入到我的源代码中 以便于跟踪版本 从命令行运行这个 ant 文件是有效的 我已经在 profile 中设置了 PATH 以包含 svnversion
  • 为 iPhone SDK 编译 Freetype (XCode)

    我想知道是否有人知道如何在 iPhone SDK 的 XCode 中配置 FreeType 我一直在尝试但没有成功 理想情况下 您需要使用最新的工具进行构建 从 iOS 6 0 SDK 版本开始 最低 SDK 版本为 4 3 并针对 arm
  • 将带有图像的 JLabel 添加到 JList 以显示所有图像

    这是我的代码 它不在框架中显示图像 而是显示一些文本 有人会建议我应该在代码中进行哪些更改 以便它允许我在框架中显示图像吗 import java awt Component import java awt Image import jav