0

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

4

2 回答 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 回答