在Java中使用.actionPerformed实现变量

时间:2011-10-23 01:43:39

标签: java swing variables actionlistener

我绝不是程序员,而是通过在论坛上修补并查看大部分由优秀人员撰写的示例,了解了我所知道的大部分知识。我已经了解了java,我试图在框架中创建按钮。基本上我想要做的是从文件中读取单词,为每个单词创建一个按钮,然后让我选择该按钮来显示选项(稍后将编码)。我知道之前已经回答了这个问题,但是没有一个答案确实给了我任何澄清(再次我有点像这样的非编程术语/非常感谢简单的解释,但当然不需要:))。< / p>

我创建变量按钮的代码(在程序的早期从系统中读取了desireFile):

File fileIn = new File(desireFile);
Scanner fileReader = new Scanner (fileIn);
int wordNum = 0;

while(fileReader.hasNext()){
    String wordReader = fileReader.next();
        buttonVal = new JButton (wordReader);
    buttonVal.addActionListener(new ButtonListener());
    buttonVal.setEnabled(true);
    contentPane.add(buttonVal, BorderLayout.NORTH);
    wordNum++;
}

我使用wordNum只是为了确保我的循环正确递增。然后我有我的ButtonListener类:

class ButtonListener implements ActionListener {
  ButtonListener() {
  }

  public void actionPerformed(ActionEvent e) {
     System.out.println("You clicked the button");
  }
}

我让它工作,它创建我的可变按钮,每当我点击这些按钮中的任何一个按钮时,它会在控制台中打印“你点击了按钮”。我遇到的问题是,这不是我最终想做的事情。我需要根据主类的结果变量操作(例如,如果文件中的文本显示“这是一只狗”,我需要“this”的按钮做一些不同于“is”按钮的操作) 。另一个问题是,每次文件输入都是可变的,我不知道如何设置if / else语句(因为这个单词可以是字面上的任何内容,因此按钮是什么,不是吗?)

再一次,我只是喜欢编程作为一种爱好,并感谢所有的帮助,如果你能为我解释任何解释(或给我链接做得很好)我会很感激。到目前为止,我对Java中的所有内容都很好,但这些按钮让我感到难过。感谢帮助大师

1 个答案:

答案 0 :(得分:2)

您可以通过两种方式轻松获取JButton的文本,可以从ActionEvent通过

获取的actionCommand属性获取
public void actionPerformed(ActionEvent e) {
   String buttonText = e.getActionCommand();
}

或通过其getSource

public void actionPerformed(ActionEvent e) {
   String buttonText = ((JButton)e.getSource()).getText();
}

如何处理返回的字符串将取决于您要对其执行的操作以及如何确定如何处理单词。你会有一本字典来查找单词,然后决定该怎么做?鉴于迄今为止的信息很难说。