Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从矢量元素在JLabel中设置ImageIcon文件路径?_Java_Swing_Vector_Jlabel_Imageicon - Fatal编程技术网

Java 如何从矢量元素在JLabel中设置ImageIcon文件路径?

Java 如何从矢量元素在JLabel中设置ImageIcon文件路径?,java,swing,vector,jlabel,imageicon,Java,Swing,Vector,Jlabel,Imageicon,我仍然在完成我的图像查看器应用程序的过程中,我已经达到了将图像的文件名存储在向量中的部分。例如,当打印到控制台时,向量的第一个元素将是image1.gif,我知道要将ImageIcon添加到JLabel,我需要为参数插入IMAGES/image1.gif。但是我该怎么做呢,因为角色通常与我们的论点相关联 另一件事是,我被认为是一个编程新手,有时我会把自己搞糊涂,或者忘记了我所学的一些基础知识,所以我想知道是否每个人都能给我一些关于编码的指导?此外,到目前为止,我已经想到了任何私有方法来实现,所以

我仍然在完成我的图像查看器应用程序的过程中,我已经达到了将图像的文件名存储在向量中的部分。例如,当打印到控制台时,向量的第一个元素将是image1.gif,我知道要将ImageIcon添加到JLabel,我需要为参数插入IMAGES/image1.gif。但是我该怎么做呢,因为角色通常与我们的论点相关联

另一件事是,我被认为是一个编程新手,有时我会把自己搞糊涂,或者忘记了我所学的一些基础知识,所以我想知道是否每个人都能给我一些关于编码的指导?此外,到目前为止,我已经想到了任何私有方法来实现,所以你们能给我一些建议吗

提前谢谢

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;

class ImageViewer extends JPanel implements ActionListener {

//Instance variables
JPanel bottomPanel;
JLabel imageLabel;
JButton previousBtn;
JButton nxtBtn;

//Constructor
ImageViewer()
{       
    previousBtn = new JButton("Previous");
    previousBtn.addActionListener(this);
    add(previousBtn);

    nxtBtn = new JButton("Next");
    nxtBtn.addActionListener(this);
    add(nxtBtn);
}

public void actionPerformed(ActionEvent e)
{
}
}
我的驾驶课

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;

class TestImageViewer {

public static void main(String [] args)
{
    //First input dialog. Example from user will be like:  image1.gif
    String userInput = JOptionPane.showInputDialog("Please input name of first image file");
    Scanner myScanner = new Scanner(userInput);
    String fileDetail = myScanner.next();
    String[] arr = fileDetail.split("\\.");

    String letter, number, ext;

    letter = arr[0].replaceAll("[0-9.]", "");
    number = arr[0].replaceAll("[^0-9.]", "");
    ext = arr[1];

    int num = Integer.parseInt(number);

    System.out.println(letter);
    System.out.println(number);
    System.out.println(ext);

    //Second input dialog
    String imageNumber = JOptionPane.showInputDialog("Please enter the number of images");
    Scanner secondScanner = new Scanner(imageNumber);
    int numberInput = secondScanner.nextInt();

    Vector <String> imageDetails = new Vector<String>();
    int total = (num + numberInput);

    for(int i = num; i <= total; i++)
    {
        imageDetails.add(letter + i + "." + ext);
    }

    for(String s: imageDetails)
    {
        System.out.println(s);
    }

    //JLabel for displaying the images
    JLabel imageLabel = new JLabel();        //<--------This is the part which I'm stuck
    imageLabel.setBackground(Color.WHITE);
    imageLabel.setOpaque(true);     

    JFrame imageFrame = new JFrame("Image Viewer");

    ImageViewer imagePanel = new ImageViewer();
    imagePanel.add(imageLabel);

    imageFrame.add(imagePanel);
    imageFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    imageFrame.setVisible(true);
    imageFrame.pack();
}
}

我不会尝试将控制台和swing应用程序混合使用。这样做的目的是什么?最终用户是否应该从控制台键入一些文件名来运行查看器?您知道哪个最终用户从控制台运行应用程序。关键是,不要将控制台程序与gui程序混合使用,因此我认为我不完全理解问题所在。我对这一部分不感兴趣。到底是什么问题?而且你的设计似乎有点不对劲。看一看也许有一些想法或者也许@peeskillet嗨,这只是一个简单的gui应用程序。用户不会使用控制台让查看器运行,只是我还在中间,所以只是为了确保它能够正常工作。无论如何,谢谢你的链接。