我是该语言的新手,我想了解ImageIcon的工作原理。我在子类中有一个方法,我想基于switch语句返回ImageIcon。我唯一的问题是我似乎无法使.setImage()工作。我知道语法是setImage(Image image),但是我不确定参数中的真正含义。
这是我下面的代码。我曾尝试搜索,但似乎没有一个是我的特定问题。谢谢。
public ImageIcon getImage()
{
ImageIcon bxIcon = new ImageIcon("g.jpg");
switch(zone)
{
case 'a': bxIcon.setImage("sml.jpg");
break;
case 'b': bxIcon.setImage("med.jpg");
break;
case 'c': bxIcon.setImage("lrg.jpg");
break;
}
return boxIcon;
}
我知道上面的代码不会编译,因为语法不正确,我只是不确定如何正确使用它。我尝试读取.setImage()上的Java信息,但找不到能解决我问题的任何东西。任何帮助将是巨大的!
最佳答案
在您的代码中,您只需返回一个新的ImageIcon即可,而不必依赖于设置图像
public ImageIcom getImage(){
switch(zone)
{
case 'a': return new ImageIcon("sml.jpg");
//etc...
}
return new ImageIcon("g.jpg");
}
作为对setImage方法的说明:Image是一个接口,实现此接口的通用类是BufferedImage。您可以使用ImageIO将图像文件读入BufferedImage对象。请参见Reading/Loading an Image教程。例如,您可以阅读图像,然后设置图标的图像
BufferedImage image = ImageIO.read(new File("sml.jpg"));
//Above could also be defined as an Image
bxIcon.setImage(image);