.setImage用法帮助Java

时间:2015-04-19 16:22:09

标签: java imageicon

我对该语言完全陌生,我正在努力了解ImageIcon的工作原理。我在子类中有一个方法,我想基于switch语句返回一个ImageIcon。我唯一的问题是我似乎无法让.setImage()工作。我知道语法是setImage(图像图像),但我不确定(图像图像)在参数中的实际含义。

这是我下面的代码。我试过搜索,但似乎没有一个特定于我的问题。感谢。

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信息,但无法找到任何可以解决我的问题。任何帮助都会很棒!

2 个答案:

答案 0 :(得分:2)

在您的代码中,您只需返回一个新的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);

答案 1 :(得分:1)

好吧,让我们看一下docs

方法的签名是public void setImage(Image image)。这意味着它接受Image对象。你传递的是String,所以这种方法不起作用,但正如JB在评论中指出的那样,人们可以简单地创建它!

ImageIconconstructor,允许用户直接从文件中创建ImageIcon

 new ImageIcon("img1.jpg");

编辑:正如JB指出的那样,ImageIO可用于加载Image对象,然后将其传递给ImageIcon