Java 如何使JButton接受来自JTextField的输入?
我正在尝试制作一个程序,将给定数组中列出的英语单词翻译成日语,反之亦然。它还将显示给定单词的图像。对于我的actionPerformed方法,我将其编码为当按下“English to Japanese”按钮时,For循环将运行,直到来自JTextField的输入与englishWords数组中列出的单词相同。但我不确定这是否正确。是我的for循环不正确还是我的代码处理错误 另外,忽略未完成的图像代码,我只是想找出如何将这些单词进行比较Java 如何使JButton接受来自JTextField的输入?,java,arrays,swing,actionlistener,string-comparison,Java,Arrays,Swing,Actionlistener,String Comparison,我正在尝试制作一个程序,将给定数组中列出的英语单词翻译成日语,反之亦然。它还将显示给定单词的图像。对于我的actionPerformed方法,我将其编码为当按下“English to Japanese”按钮时,For循环将运行,直到来自JTextField的输入与englishWords数组中列出的单词相同。但我不确定这是否正确。是我的for循环不正确还是我的代码处理错误 另外,忽略未完成的图像代码,我只是想找出如何将这些单词进行比较 public class Translator extend
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]);
}
}
公共类转换器扩展JApplet实现ActionListener
{
//英制数组
字符串[]英语单词={“鱼”、“莴苣”、“自行车”、“厨师”、“老师”};
//日本阵列
字符串[]日语单词={“Sakana”、“Retasu”、“Jitensha”、“Shefu”、“Sensei”};
//图像阵列
图像[]文字图像;
图像错误;
//Javautil
JButton英语、日语;
图像图标;
JLabel标签;
JTextField词;
公共void init()
{
//图像
wordImages=新图像[5];
wordImages[0]=getImage(getCodeBase(),“Fish.jpg”);
wordImages[1]=getImage(getCodeBase(),“莴苣.jpg”);
wordImages[2]=getImage(getCodeBase(),“Bike.jpg”);
wordImages[3]=getImage(getCodeBase(),“Chef.jpg”);
wordImages[4]=getImage(getCodeBase(),“Sensei.jpg”);
error=getImage(getCodeBase(),“error.jpg”);
//布局
setLayout(新的FlowLayout());
words=新的JTextField(空,10);
英语=新JButton(“英语转日语”);
日语=新JButton(“日语到英语”);
图标=新图像图标(wordImages[0]);
标签=新的JLabel(图标,JLabel.CENTER);
icon.setImage(wordImages[0]);
label.setIcon(图标);
//ActionListener
english.addActionListener(本);
日语.addActionListener(this);
//安装
加(字);
加上(英文);
加上(日语);
添加(标签);
}
已执行的公共无效行动(行动事件ae)
{
对象src=ae.getSource();
if(src==英语)
{
for(int x=0;x
使用.equals而不是==因为您是从文本字段“动态”创建字符串的,因此不会为其分配与执行以下操作时分配的内存相同的内存:
String s1 = "Fish";
String s2="Fish"l
=
按字面意思比较对象
而不是字符串
。必须使用.equals
参考此
Itsif(englishWords[x].equals(words.getText())
“忽略未完成的图像代码”不要包含它,而不要告诉我们要忽略什么。要更快地获得更好的帮助,请发布或。