使用变量作为文件路径将ImageIcon添加到JPanel

时间:2014-09-10 21:12:29

标签: java swing user-interface embedded-resource imageicon

我有一个csv文件,其中包含我所有图像的文件名。我想从该文件中提取文件名,并使用它们将相应的图像添加到我的GUI中。我有很多图像,因此我无法输入所有文件路径。

如果我使用

,它会起作用
img = new ImageIcon("resources/imagename.jpg");

但如果我使用

则不行
String fileName = "resources/" + fileNameExtractedFromCSVFile;
img = new ImageIcon(fileName);

它提取的文件名很好,它只是不会用它来定位图像。我将不胜感激任何帮助。

2 个答案:

答案 0 :(得分:0)

在使用之前检查fileNameExtractedFromCSVFile的值。好像它没有正确填充。如果您使用的是IDE,请尝试在DEBUG模式下运行代码并在此行上放置一个断点以查看变量的值。

答案 1 :(得分:0)

如果我确实理解了你需要这样的东西,请看下面的演示及其代码。另外,请在您的应用程序中创建图像包。

enter image description here

enter image description here

enter image description here

将此方法添加到您的课程中以阅读csv

   public void csvread() throws IOException 
    {
        File file = new File("filenames.csv");
    List<String> lines = Files.readAllLines(file.toPath(), 
            StandardCharsets.UTF_8);
    for (String line : lines) {
        String[] array = line.split(",");
        jTextArea1.append(array[0]+"\n");
    }

    }

按钮csv阅读操作

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){

    try {
        csvread();
    } catch (IOException ex) {
        Logger.getLogger(ImageDisplay.class.getName()).log(Level.SEVERE, null, ex);
    }


} 

发布文本区域鼠标获取选定文本并在jlabel上显示图像

private void jTextArea1MouseReleased(java.awt.event.MouseEvent evt) {                                         

    if (jTextArea1.getSelectedText() != null) {

        String s = jTextArea1.getSelectedText();

        ImageIcon imageselect = new ImageIcon(getClass().getResource("/images/" + s));
        jLabel2.setIcon(imageselect);

    } else {
        jLabel4.setVisible(true);
    }

}