【发布时间】:2016-03-24 06:40:54
【问题描述】:
我正在尝试制作一个程序,将给定数组中列出的英语单词翻译成日语,反之亦然。它还将显示给定单词的图像。对于我的 actionPerformed 方法,我将其编码为当按下“英语到日语”按钮时,for 循环将运行,直到 JTextField 的输入与 englishWords 数组中列出的单词相同。但我不确定这是否正确。是我的for循环不正确还是我接近代码错误?
附:忽略未完成的图像代码,我只是想弄清楚如何将单词一起比较
public class Translator extends JApplet implements ActionListener
{
//English array
String[] englishWords = { "Fish", "Lettuce", "Bike", "Chef", "Teacher" };
//Japanese array
String[] japaneseWords = { "Sakana", "Retasu", "Jitensha", "Shefu", "Sensei" };
//Image array
Image[] wordImages;
Image wrong;
//Java util
JButton english, japanese;
ImageIcon icon;
JLabel label;
JTextField words;
public void init()
{
//Images
wordImages = new Image[5];
wordImages[0] = getImage(getCodeBase(), "Fish.jpg");
wordImages[1] = getImage(getCodeBase(), "Lettuce.jpg");
wordImages[2] = getImage(getCodeBase(), "Bike.jpg");
wordImages[3] = getImage(getCodeBase(), "Chef.jpg");
wordImages[4] = getImage(getCodeBase(), "Sensei.jpg");
wrong = getImage(getCodeBase(), "Wrong.jpg");
//Layout
setLayout(new FlowLayout());
words = new JTextField(null, 10);
english = new JButton("English to Japanese");
japanese = new JButton("Japanese to English");
icon = new ImageIcon(wordImages[0]);
label = new JLabel( icon, JLabel.CENTER);
icon.setImage(wordImages[0]);
label.setIcon(icon);
//ActionListener
english.addActionListener(this);
japanese.addActionListener(this);
//Install
add(words);
add(english);
add(japanese);
add(label);
}
public void actionPerformed( ActionEvent ae )
{
Object src = ae.getSource();
if(src == english)
{
for(int x = 0; x < englishWords.length; ++x)
if(englishWords[x] == words.getText())
icon.setImage(wordImages[x]);
}
else if(src == japanese)
{
for(int x = 0; x < japaneseWords.length; ++x)
if(japaneseWords[x] == words.getText())
icon.setImage(wordImages[x]);
}
}
【问题讨论】:
-
它的
if(englishWords[x].equals(words.getText())) -
"忽略未完成的图像代码" 与其告诉我们要忽略什么,不如不要包含它。为了尽快获得更好的帮助,请发帖 minimal reproducible example 或 Short, Self Contained, Correct Example。
标签: java arrays swing actionlistener string-comparison