从ActionListener调用方法

时间:2014-03-26 23:52:44

标签: java

我有一个名为TEXTIN的JTextField,当按下返回键时,它应该从我的构造函数中的ActionListener调用我的rollText方法。我没有想法,并且一直试图修复它。这是构造函数的代码:

TEXTIN.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e){
        rollText();

    }

rollText方法应该从TEXTIN中获取文本并在一行10个JLabel上逐个字母地打印它。我不会发布整个方法,因为我知道它在给定预定义输入时有效,但它的开头是:

public void rollText(ActionEvent e) throws InterruptedException{
        TEXTIN.setEditable(false); 
        String inputText = TEXTIN.getText();
...

希望有人可以帮助我。谢谢。

2 个答案:

答案 0 :(得分:0)

public void rollText(ActionEvent e) throws InterruptedException

您可以将其更改为:

public void rollText() throws InterruptedException

当然,提供方法中不需要ActionEvent。如果您这样做,请更改以下内容:

public void actionPerformed(ActionEvent e)
{
    rollText();
}

要:

public void actionPerformed(ActionEvent e)
{
    rollText( e );
}

答案 1 :(得分:0)

你可以做这样的事情

class MyClass{
    JTextField textIn;

    class MyActionListener extends ActionListener{
        private MyClass cls;
        public MyActionListener(MyClass cls){
            this.clas = cls;
        }

        public void actionPerformed(ActionEvent e){
            cls.rollText(e);
        }
    }

    public MyClass(){
        textIn.addActionListener(new MyActionLIstener(this));
    }
}

您需要创建自己的动作侦听器,并在动作侦听器的构造函数中传入实例。

我的机器上没有Java编译器,所以上面的代码会有一些错误但它应该让你对如何继续进行一般性的了解。