我正在做一个项目,我需要在 JFrame 中显示图像。图像是动态下载的,需要存储在 jar 文件之外。如何显示计算机文件系统中的图像(使用 Jlabel)?
问问题
2847 次
2 回答
1
假设图像存储在一个文件夹中,比如“图像”或任何位置。我假设您在 src(源文件夹)中有一个图像文件夹,尽管您可以将其更改为您想要的任何位置。
/*
URL logoUrl = this.getClass().getResource("/images/login_icon.png"); // you can change this location
Toolkit tk1 = this.getToolkit();
logo = tk1.getImage(logoUrl);
*/
// use above code if the image lies within your jar file
// otherwise use below code for images stored in path like C:\User\Desktop ..
ImageIcon image = new ImageIcon("C:\\Users\\Public\\Pictures\\Desert.jpg");
jLabel2.setIcon(image); // where jLabel2 is your label
这会奏效!
于 2013-05-31T09:32:18.273 回答
0
试试这个代码
public class ShowPic extends JFrame{
private JLabel lblDisplay = new JLabel(new ImageIcon("im.jpg"));
public ShowPic()
{
JPanel pan1 = new JPanel(new BorderLayout(450,450));
pan1.add(lblDisplay , BorderLayout.CENTER);
add(pan1, BorderLayout.CENTER);
}
public static void main(String[] args) {
JFrame frame = new ShowPic();
frame.setSize(500, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
如果您在已知文件夹中有图像,那么您可以获得这样的图像
List<String> filename=new ArrayList<String>();
File aFile = new File("C:\\image");
if(aFile.isDirectory())
{
filename=Arrays.asList(aFile.listFiles());
}
List<JLabel> lb=new ArrayList<JLabel>();
for(int i=0;i<filename.size();i++)
{
lblDisplay = new JLabel(new ImageIcon("c:\\image"+filename.get(i)));
lb.add(lblDisplay);
}
lb 是 JLabel 的 Arraylist f 个对象,每个对象在目录中都有每个文件引用。
于 2013-05-31T09:19:57.347 回答