当前位置:  开发笔记 > 编程语言 > 正文

ActionListener问题

如何解决《ActionListener问题》经验,为你挑选了1个好方法。

我的actionListener有问题.在我点击按钮之前,似乎actionListener会自动运行?在单击按钮之前,控制台中出现"这不应出现在控制台中的控制台之前"....这很奇怪.

.... 
button1.addActionListener(this); 
button2.addActionListener(this);
....
public void actionPerformed(ActionEvent e) {

   System.out.println("This should not appear in the console before button click");

   if (e.getSource()==button1)
      System.out.println ("answer1");

   else if (e.getSource()==button2)
      System.out.println ("answer2");
   .....
}

Tom Hawtin -.. 5

您可以通过调用来确定调用方法的位置Thread.dumpStack().这会将堆栈跟踪打印到错误流(可能是Java控制台).或者使用调试器并在方法的第一行放置一个断点.

public void actionPerformed(ActionEvent e) {
   Thread.duumpStack();
   System.out.println("This should not appear in the console before button click");
   ...

顺便说一句:我建议不要使用EventObject.getSource.而是为每个动作添加一个新的侦听器.

所以你的示例代码将成为:

button1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {
        System.out.println("answer1");
    } 
});
button2.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {
        System.out.println("answer2");
    } 
});

不幸的是,与匿名内部类相关联的样板明显冗长,但意图更清晰.



1> Tom Hawtin -..:

您可以通过调用来确定调用方法的位置Thread.dumpStack().这会将堆栈跟踪打印到错误流(可能是Java控制台).或者使用调试器并在方法的第一行放置一个断点.

public void actionPerformed(ActionEvent e) {
   Thread.duumpStack();
   System.out.println("This should not appear in the console before button click");
   ...

顺便说一句:我建议不要使用EventObject.getSource.而是为每个动作添加一个新的侦听器.

所以你的示例代码将成为:

button1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {
        System.out.println("answer1");
    } 
});
button2.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {
        System.out.println("answer2");
    } 
});

不幸的是,与匿名内部类相关联的样板明显冗长,但意图更清晰.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有