我想要做的是在从comboBox中选择指定项目时显示图像,知道comboBox的项目发生更改且数字未修复。此代码显示了我如何添加依赖于“for”
的项目for (int j = 1; j <= 6; j++) {
if (condition) {
System.out.println(result);
combo.addItem("component N°" + j);
}
}
我需要的是在选择项目时显示某个图像!我真的不知道该怎么做。我已尝试使用actionlistener执行操作,但我不知道如何将项目选择与我的图像相关联。
我使用此方法将图像显示为JPanel
public static void display(String path, JPanel panel) {
BufferedImage image = null;
try {
image = ImageIO.read(new File(path));
} catch (IOException e2) {
e2.printStackTrace();
}
Image dimg = image.getScaledInstance(panel.getWidth(), panel.getHeight(),
Image.SCALE_SMOOTH);
panel.add(new JLabel(new ImageIcon(dimg)));
}
答案 0 :(得分:1)
例如,如果我从JcomboBox中选择(组件N°2),那么我需要显示的图像是image2.png(j = 2)
只需添加ActionListener
并从所选项目中检索该号码。您可以使用JLabel
来显示图片。只需致电setIcon()
即可更改图标。
示例代码:
//final JLabel label = new JLabel();
final ComboBox<String> jComboBox = new JComboBox<String>();
jComboBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String value=(String)jComboBox.getSelectedItem();
int digit =Integer.valueOf(value.replaceAll("component N°","").trim());
String imageName="image"+digit+".png";
// show the image
// label.setIcon(...);
}
});
请看看我的另一篇文章。它可能会帮助您形成正确的图像路径。
我刚刚显示了一个图像但是当我更改组合框项目时没有任何反应
编辑(在添加新图片之前删除已添加的图片)
public static void display(String path, JPanel panel){
...
panel.removeAll(); // Remove already added image
panel.add(new JLabel(new ImageIcon(dimg))); // Add new image
panel.revalidate();
panel.repaint();
}
答案 1 :(得分:0)
要使用JCombobox,您需要使用ItemStateChanged
方法。在该方法中,您可以获得所选索引。然后从索引中获取索引中的数据。现在您拥有所选数据并可以执行您想要执行的操作。