每当从 JComboBox 中选择一个项目时,我都试图从图像文件夹中为 JLabel 设置一个图标。 JComboBox 中项目的名称和文件夹中图像的名称相同。因此,无论何时从 JComboBox 中选择一个项目,都应将具有相同名称的相应图像设置为 JLabel 的图标。我正在尝试做这样的事情。
private void cmb_movieselectPopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt){
updateLabel(cmb_moviename.getSelectedItem().toString());
}
protected void updateLabel(String name) {
ImageIcon icon = createImageIcon("C:\\Users\\xerof_000\\Pictures\\tmspictures\\" + name + ".jpg");
if(icon != null){
Image img = icon.getImage();
Image newimg = img.getScaledInstance(lbl_pic.getWidth(), lbl_pic.getHeight(), java.awt.Image.SCALE_SMOOTH);
icon = new ImageIcon(newimg);
lbl_pic.setIcon(icon);
lbl_pic.setText(null);
}
else{
lbl_pic.setText("Image not found");
lbl_pic.setIcon(null);
}
}
protected static ImageIcon createImageIcon(String path) {
URL imgURL;
imgURL = NowShowing.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
return null;
}
}
我认为问题出在“C:\Users\xerof_000\Pictures\tmspictures\”中,我尝试使用“C:/Users/xerof_000/Pictures/tmspictures/”,但即使那样也不起作用。无论我做什么,它只会在 JLabel 上显示“找不到图像”。
原文由 Raed Shahid 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是我的目录结构:
这是 ComboExample.java 文件的内容:
现在编译:
为了编译我这样做了:
清单文件的内容:
JAR 文件创建:
现在将这个
,
,
,
和
), 并运行
JAR File
带到任何有这些图像的位置(JAR File
,然后查看结果:-)