2014-03-26 37 views
0

我有一個名爲TEXTIN的JTextField,當按下回車鍵時,它應該從構造函數中的ActionListener調用我的rollText方法。我沒有想法,並試圖修復它很長一段時間。這是從構造函數的代碼:來自ActionListener的調用方法

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(); 
... 

希望有人能幫助我。謝謝。

+0

'TEXTIN'是什麼?它在屏幕上可見嗎? 'rollText'只會在'TEXTIN'組件動作的時候被調用......這是組件類型的上下文... – MadProgrammer

+0

它的JTextField,抱歉 – ChrisPBacon

+0

問題是什麼?是否不調用'rollText'?你可以發佈'rollText'方法嗎? – Tips48

回答

0
public void rollText(ActionEvent e) throws InterruptedException 

您可以將其更改爲:

public void rollText() throws InterruptedException 

提供了當然你不需要在方法的動作事件。如果你這樣做,然後更改如下:

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

要:

public void actionPerformed(ActionEvent e) 
{ 
    rollText(e); 
} 
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編譯器,所以上面的代碼會有一些錯誤,但它應該給你一個關於如何繼續的一般想法。