首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ActionListener调用方法

从ActionListener调用方法
EN

Stack Overflow用户
提问于 2014-03-27 07:52:44
回答 2查看 298关注 0票数 0

我有一个名为JTextField的TEXTIN,当按下return键时,它应该从我的构造函数中的ActionListener调用我的rollText方法。我已经想不出办法了,并且已经尝试了很长一段时间。这是来自构造函数的代码:

代码语言:javascript
复制
TEXTIN.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e){
        rollText();

    }

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

代码语言:javascript
复制
public void rollText(ActionEvent e) throws InterruptedException{
        TEXTIN.setEditable(false); 
        String inputText = TEXTIN.getText();
...

希望有人能帮我。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-03-27 08:14:11

代码语言:javascript
复制
public void rollText(ActionEvent e) throws InterruptedException

您可以将其更改为:

代码语言:javascript
复制
public void rollText() throws InterruptedException

当然,前提是您不需要在方法中使用ActionEvent。如果您这样做了,请更改以下内容:

代码语言:javascript
复制
public void actionPerformed(ActionEvent e)
{
    rollText();
}

至:

代码语言:javascript
复制
public void actionPerformed(ActionEvent e)
{
    rollText( e );
}
票数 0
EN

Stack Overflow用户

发布于 2014-03-27 08:15:41

你可以这样做

代码语言:javascript
复制
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编译器,所以上面的代码会有一些but,但它应该会让您对如何继续进行有一个大致的了解。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22675526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档