我在一个项目上工作,我需要在JFrame中显示图像。图像是动态下载的,需要存储在jar文件之外。如何从计算机的文件系统中显示图像(使用Jlabel)?
答案 0 :(得分: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
这会有效!
答案 1 :(得分: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对象,每个对象在目录中都有每个文件引用。