2010-12-01 69 views
0

我写了两个方法来获取并返回一个字符串。一个从英语转换成拉丁语,反之亦然。我有两个JTextFields(一个英文和另一个Piglatin-用于用户输入)。同样,两个JButtons:“To English”和“To Pig Latin”。我很困惑如何使用动作侦听器。看起来可能只有一个ActionListener执行所有你想要的“点击”,但是我很困惑它是如何知道你按下了哪个按钮的。我本能地想为每个按钮创建两个ActionListeners,从而当点击按钮时,相应的代码将被执行。ActionListener如何知道按下了哪个按钮?

是否有人可以向我展示和/或向我解释这一切是如何工作的? 总结我所理解的一切至今:

  1. 类型的英语单词到JTextField中
  2. 点击“猪拉丁”按钮
  3. 的ActionListener莫名其妙地知道“猪拉丁”按钮被点击并执行toPigLatin ()方法将JTextField文本作为参数。 (假设JTextField输入自动被认为是一个String类型,真的还没有那么远)。
  4. 从该方法返回的字符串被输出到猪拉丁文JTextField供用户查看。

谢谢大家!

我找到了我要找的东西。对不起,我把它发布在错误的论坛上,并感谢将它迁移到它所属的位置......我打算在此处发布它! :) 对于任何人试图弄清楚如何使它每个按钮执行一个代码块时单击使用以下:[ActionEvent] .getActionCommand()。equals(“[Name of Button]”) 这是我的最终解决方案如果有人感兴趣:

public void actionPerformed(ActionEvent e) { 
    if (e.getActionCommand().equals("To Pig Latin")){ 
     String english = English.getText(); 
     PigLatin.setText(englishToPigLatin(english)); 
    } 
    if (e.getActionCommand().equals("To English")){ 
     String piglatin = PigLatin.getText(); 
     English.setText(pigLatinToEnglish(piglatin)); 
    } 
    String piggyCount = Integer.toString(pigCount); 
    countP.setText("Number of Successful Word Translations: English: "+piggyCount+" "); 
    String englishyCount = Integer.toString(englishCount); 
    countE.setText(String.format("Pig-Latin: "+englishyCount)); 
} 

再次感谢所有试图帮助我的人!

+2

更适合[Stack Overflow](http://stackoverflow.com)。 – 2010-12-01 23:17:08

回答

0

在ActionListeners here上有一个很好的教程。对两个按钮使用同一监听器的最简单方法是在ActionEvent上调用e.getActionCommand()传递给actionPerformed函数。这将返回一个带有按钮标签的字符串,然后您可以在if语句中使用该字符串执行相应的操作。

相关问题