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