将文件系统中的图像添加到Jlabel

时间:2013-05-31 09:06:48

标签: java image swing jlabel imageicon

我在一个项目上工作,我需要在JFrame中显示图像。图像是动态下载的,需要存储在jar文件之外。如何从计算机的文件系统中显示图像(使用Jlabel)?

2 个答案:

答案 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对象,每个对象在目录中都有每个文件引用。