使用图像GUI添加

时间:2014-07-19 07:12:31

标签: java image swing

我是初学者。我正在做一个孩子的数学游戏。它所要做的只是添加给出的2张图片。问题是,我不知道JTextField如何知道答案是正确的。这是图片。

enter image description here

ImageIcon[] images = new ImageIcon[10];
            images[0] = new ImageIcon("0.jpg");
            images[1] = new ImageIcon("1.jpg");
            images[2] = new ImageIcon("2.jpg");
            images[3] = new ImageIcon("3.jpg");
            images[4] = new ImageIcon("4.jpg");
            images[5] = new ImageIcon("5.jpg");
            images[6] = new ImageIcon("6.jpg");
            images[7] = new ImageIcon("7.jpg");
            images[8] = new ImageIcon("8.jpg");
            images[9] = new ImageIcon("9.jpg");

            ImageIcon[] image = new ImageIcon[10];
            image[0] = new ImageIcon("0.jpg");
            image[1] = new ImageIcon("1.jpg");
            image[2] = new ImageIcon("2.jpg");
            image[3] = new ImageIcon("3.jpg");
            image[4] = new ImageIcon("4.jpg");
            image[5] = new ImageIcon("5.jpg");
            image[6] = new ImageIcon("6.jpg");
            image[7] = new ImageIcon("7.jpg");
            image[8] = new ImageIcon("8.jpg");
            image[9] = new ImageIcon("9.jpg");

            int image_number = (int) (Math.random() * 10);
            int image_number1 = (int) (Math.random() * 10);

            Pic1.setIcon(images[image_number]);
            Pic2.setIcon(image[image_number1]);

2 个答案:

答案 0 :(得分:2)

我不确定我是否正确理解了您的问题,但您可以将图片的值存储在Image中的某个变量中。

自从我用java编码以来已经过了一段时间,但我记得有些字段可以存储数据。

在此之后,所有JTextField必须做的是获取与当前显示的2个图像相关联的数据,并查看答案是否正确。

另一个不错的选择,可以是将图像命名为等于它们的值,即名为“7.png”的图像实际上是一个显示7的图表,这样你所要做的就是弄清楚显示了2个图像,解析他们的名字,并通过用户输入检查准确性。

<强> 更新

做了一些快速研究 - http://docs.oracle.com/javase/7/docs/api/javax/swing/ImageIcon.html

ImageIcon包含一个字段描述,您可以在创建它的实例时简单地设置该字段。检索当前渲染的那个。

ImageIcon[] images = new ImageIcon[10];
            images[0] = new ImageIcon("0.jpg");
            images[0].setDescription("0");
            //Other code

然后在其他地方的某个地方,点击按钮或JTextField的按键,它可以被检索为:

Integer x=Integer.parseInt(Pic1.getIcon().getDescription());

答案 1 :(得分:0)

您可能会考虑做的一件事是在图像周围创建一个包装类,它不仅维护对图像的引用,还保留图像的值

public class NumberImage {
    private Image image;
    private int value;

    public NumberImage(int value, Image image) {
        this.value = value;
        this.image = image;
    }

    public int getValue() {
        return value;
    }

    public Image getImage() {
        return image;
    }
}

这样,您只需在程序中添加两个值属性即可计算答案

你已经拥有的另一件事是要显示的图像的两个索引,wch是要显示的图像的相同数值......

也就是说,根据您的示例image_number == 7image_number1 == 5,您已经拥有了计算答案所需的信息;)