【发布时间】:2014-05-21 22:38:48
【问题描述】:
我想要做的是在从组合框中选择指定项目时显示图像,知道组合框的项目发生变化并且数量不固定。此代码显示了我如何添加取决于我的“for”的项目
for (int j = 1; j <= 6; j++) {
if (condition) {
System.out.println(result);
combo.addItem("component N°" + j);
}
}
我需要的是在选择一个项目时显示某个图像!我真的不知道该怎么做。我已经尝试使用 actionlistener 执行 actionperformed,但我不知道如何将选择的项目与我的图像关联起来。
我使用这种方法将图像显示到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)));
}
【问题讨论】:
-
您希望如何将图像与组合框的值关联起来?图像的名称是从所选项目派生的吗?
-
例如,如果我从 JcomboBox 中选择(组件 N° 2),那么我需要显示的图像是 image2.png (j=2)
-
combo 中的内容与图片有什么关系?如果您不知道这是如何工作的,那么我们的建议将无济于事。一种可能性是设计一个
Object,其中包含String和对要加载的图像的引用。String被用作组合框中显示的内容和图像,以便您可以加载/显示它 -
@MadProgrammer 我正在尝试调查此问题,但 OP 正在分块共享代码。我已经浪费了一个多小时来解决它,但我不知道 OP 在做什么。现在请你继续。我要去睡觉了。欲了解更多信息,请阅读我的帖子的 cmets。
-
1) 为了尽快获得更好的帮助,请发布MCVE(最小完整且可验证的示例)。 2)不要在同一个空间添加多个标签,而只添加一个。保留对它的引用。在执行操作时,为单个标签设置一个新图标。