java - 如何将 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);
解决方案
推荐阅读
- azure-active-directory - ADB2C 自定义策略用户旅程 - 覆盖每个编排步骤的内容定义
- c++ - 如何按分数升序打印学生姓名
- javascript - 带有 HTML5 Canvas 的 TypeScript 3.9 - .strokeStyle 上的错误
- python - 您可以将函数返回的值保存为单独的变量吗?
- python - Z标签方向随着更多字符而反转matplotlib 3D Plot
- react-native - 如何在 onFocus 事件中获取 React Native TextInput 的垂直偏移量?
- excel - 当您在单元格中时运行宏?
- java - 我们如何使用 Retryable
- django-rest-framework - 如何将 API 密钥头注入 Django REST API 测试
- javascript - 从绘制边缘修复折线图