Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使JButton接受来自JTextField的输入?_Java_Arrays_Swing_Actionlistener_String Comparison - Fatal编程技术网

Java 如何使JButton接受来自JTextField的输入?

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

我正在尝试制作一个程序,将给定数组中列出的英语单词翻译成日语,反之亦然。它还将显示给定单词的图像。对于我的actionPerformed方法,我将其编码为当按下“English to Japanese”按钮时,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]);

    }

}
公共类转换器扩展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

参考此

Its
if(englishWords[x].equals(words.getText())
“忽略未完成的图像代码”不要包含它,而不要告诉我们要忽略什么。要更快地获得更好的帮助,请发布或。