首页 > 解决方案 > 如何将 JTextField 与 Random 的 ImageIcon 标题进行比较?

问题描述

如何将字段中键入的内容与随机的 ImageIcon 的标题(名称)进行比较?我有一个带有国旗的图像包,比较这些字符串的最佳方法是什么?

File file = new File("src/flagsII");
    String[] imageNames = file.list();
    Random rand = new Random();

为了随机化,我正在使用:

JButton btnFlag = new JButton("Flag");
        btnFlag.setToolTipText("Flag");
        btnFlag.setCursor(new Cursor(Cursor.HAND_CURSOR));
        btnFlag.setBounds(159, 299, 89, 23);
        btnFlag.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                // Random
                int index = rand.nextInt(8);
                Image im = new ImageIcon(this.getClass().getResource("/flagsII/" + imageNames[index])).getImage();
                ImageIcon iconLogo = new ImageIcon(im);
                jlbFlag.setIcon(iconLogo);
            }
        });         
        jContentPane.add(btnFlag);
    }
    return jContentPane;
}

现在将图像与在文本字段中输入的内容进行比较,我不是。

int score = 0;

    public void actionPerformed(ActionEvent e) {

        // Random
        // int flags = (int) (8 * Math.random() + 1);
        // int flags = (int) (Math.random() * 8);
        
        String country = textField.getText().toLowerCase();

        switch (country) {

        case "Australia":
            // jlbFlag.setIcon(new
            // ImageIcon(getClass().getResource(("flags/Australia.png"))));
            if (imageNames.equals(country)) {
                JOptionPane.showMessageDialog(null, "Correct", "Geography Quiz", JOptionPane.INFORMATION_MESSAGE);
                score = score + 1;
                lblScore.setText("Score: " + score);

            } else {
                Toolkit.getDefaultToolkit().beep();
                JOptionPane.showMessageDialog(null, "incorrect!", "Geography Quiz", JOptionPane.ERROR_MESSAGE);
                score = score - 1;
                lblScore.setText("Score: " + score);
            }
            break;

        case "Brazil":
            // jlbFlag.setIcon(new ImageIcon(getClass().getResource(("flags/Brazil.png"))));
            if (imageNames.equals(country)) {
                JOptionPane.showMessageDialog(null, "Correct", "Geography Quiz", JOptionPane.INFORMATION_MESSAGE);
                score = score + 1;
                lblScore.setText("Score: " + score);

            } else {
                Toolkit.getDefaultToolkit().beep();
                JOptionPane.showMessageDialog(null, "incorrect!", "Geography Quiz", JOptionPane.ERROR_MESSAGE);
                score = score - 1;
                lblScore.setText("Score: " + score);
            }
            break;

        case "China":
            // jlbFlag.setIcon(new ImageIcon(getClass().getResource(("flags/China
            // (2).png"))));
            if (imageNames.equals(country)) {
                JOptionPane.showMessageDialog(null, "Correct", "Geography Quiz", JOptionPane.INFORMATION_MESSAGE);
                score = score + 1;
                lblScore.setText("Score: " + score);

            } else {
                Toolkit.getDefaultToolkit().beep();
                JOptionPane.showMessageDialog(null, "incorrect!", "Geography Quiz", JOptionPane.ERROR_MESSAGE);
                score = score - 1;
                lblScore.setText("Score: " + score);
            }
            break;
default:
            Toolkit.getDefaultToolkit().beep();
            JOptionPane.showMessageDialog(null, "incorrect!", "Geography Quiz", JOptionPane.ERROR_MESSAGE);
            break;
        }
        System.out.println(imageNames);

    }

上面的这段代码不能正常工作!

我在提交按钮上调用它:

jbtSubmit.addActionListener(this);

标签: javaswitch-statement

解决方案


推荐阅读