初学者的问题。 。 。我想对GImage对象运行布尔测试,但我不知道如何做。例如,如果我的GImage正在显示“ image1.jpg”文件,则我想执行“ a”操作。但是,如果它显示其他任何内容,我想执行“ b”。这些图像是由我的程序的不同部分随机选择的。我看到的唯一方法是创建一个占位符String变量,该变量在更改GImage时随时进行修改(然后我可以对占位符变量执行测试),但是我确定这不是最好的方法做我想要的方式。例如,下面的方法会起作用,但是由于我的实际程序中有很多相关的GImage对象和可能的图像,因此这种方法非常笨拙:

GImage image1 = new GImage("bar.jpg", 0, 0);
int var1 = 0;
GImage image2 = new GImage("sunset.jpg", 100, 0);
int var2 = 1;
GImage image3 = new GImage("bar.jpg", 200, 0);
int var3 = 0;
if (var1 == 0) {
    // returns true
}
if (var2 == 0) {
    // returns false
}
if (var3 == 0) {
    // returns true
}


我只是在学习编程,所以可能有一个明显的解决方案,但我似乎找不到。如果有一个方法返回了GImage显示的文件名,那似乎可以满足我的需要,但是我找不到这种方法。谢谢你的帮助。

最佳答案

您可以将图像包装在自己的类中,该类包含适当的属性。

快速而肮脏:

class MyImage
{
    private String resourceName;
    private GImage gImage;

    public MyImage(String resourceName,int x, int y){
        this.resourceName = resourceName;
        this.gImage = new GImage(resourceName,x,y)
    }

    public String getResourceName()
    {
        return resourceName;
    }

    //.
    //.
    //.
}


public static final String RES_IMG_SUNSET = "sunset.jpg";

//.
//.
//.

MyImage image1 = new MyImage("bar.jpg", 0, 0);
MyImage image2 = new MyImage(RES_IMG_SUNSET, 100, 0);
MyImage image3 = new MyImage("bar.jpg", 200, 0);

if(image2.getResourceName().equals(RES_IMG_SUNSET))
{
}


您可能需要某种独特的资源名称,因此可以使用规范化的规范文件名或URI。如上例所示,另一种方法是为这些名称定义一个全局常量。当然,GImage必须支持该格式。

关于java - 如何在GImage上运行 boolean 测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14183767/

10-10 19:19