繁体   English   中英

从ActionListener调用方法

[英]Calling method from ActionListener

我有一个名为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();
...

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

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 );
}

你可以做这样的事情

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编译器,因此上面的代码将包含一些bug,但它应该使您大致了解如何进行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM