簡體   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