Добавьте JLabel с изображением в JList, чтобы показать все изображения

Вот мой код. Он не отображает изображения в кадре и вместо этого отображает текст. кто-нибудь, пожалуйста, предложите мне, какое изменение я должен внести в код, чтобы он позволял мне показывать изображения в кадре?

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.

Посмотреть список

 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); } } 

вы можете использовать listcellrenderer для отображения как изображения, так и текста в jlist, вероятно, как показано ниже, для показа метки с иконкой в ​​списке

  public class myRenderer extends DefaultListCellRenderer { @Override public Component getListCellRendererComponent(JList list, Object value, int index,boolean isSelected, boolean cellHasFocus) { //JLabel l = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); if(value instanceof JLabel) { this.setText(((JLabel)value).getText()); this.setIcon(((JLabel)value).getIcon()); } return this; } } 
  • Как добавить строку в JTable?
  • Как заставить мои клавиши со стрелками ISO_Level5_Shift работать в графических интерфейсах Java Swing?
  • Производительность JavaFx Gui vs Swing
  • KeyListener, keyPressed или keyTyped
  • Как работает paintComponent?
  • Центр JDialog над родителем
  • Как установить приоритетный приемник мыши
  • drag and drop jlabel вокруг экрана
  • Фильтрация на JTree
  • Использование нескольких JFrames: хорошая или плохая практика?
  • SwingWorker, done () выполняется до завершения вызовов ()
  • Interesting Posts

    Ручное преобразование кодов Unicode в UTF-8 и UTF-16

    Ошибка с преобразованием: масштаб и переполнение: скрытые в Chrome

    Как устранить медленный жесткий диск?

    Загружает ли Torrents чрезмерный износ жестких дисков?

    Как «застегнуть» или «повернуть» переменное количество списков?

    MS Word Find Style, охватывающий 2 строки, которые содержат текст и заменяют часть

    Почему я получаю NoClassDefFoundError в Java?

    Устройство массовой памяти USB сообщает, что мощность хаба превышена

    Каков самый быстрый способ обмена значениями в C?

    Как передать тип с нулевым значением в функцию P / invoked

    Что означает знак вопроса в параметре типа generics Java?

    Настройка кнопки на стилусе touch pro для открытия onenote 2016

    Какой лучший открытый синтаксический анализатор XML для C ++?

    Поиск хорошей программы для каталогизации DVD, видеофайлов, электронных книг

    Vim удалить все строки, которые НЕ содержат определенное слово

    Давайте будем гением компьютера.