3
ここは自分のコードです。フレーム内に画像が表示されず、代わりにテキストが表示されます。誰かが私に、フレーム内の画像を表示できるように、コード内で何を変えなければならないと私に示唆してくれますか?私はコードをこのように設計していないだろうが、それはWindowsベースボックス上の画像の一覧を表示するには、作業しながら私は、実用的な、オリジナルに近い、それを維持したい画像付き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);
}
}
おかげでラベルを示すために、おそらく、以下のいずれかのようJListの中に画像とテキストの両方を表示するためにlistcellrendererを使用することができます - )ちょうど:a)ListModelのコンポーネントがまれにあることはほとんどありません。b)Java命名規則を学んでください。 – kleopatra
thats right、しかし私の友人はリストにアイコン付きのjlabelを追加するのに問題がありました。何とか解決策を見つける – chirag