2013-07-28 50 views
1

我環顧了一下,我似乎無法找到我的問題的答案...據我所知,這應該工作正常,但我顯然缺少的東西。如何讓keyevent在applet中工作?

我有這一點的代碼,當我按下時,當我釋放回車鍵,但似乎沒有工作,這應該打印一些東西到控制檯。請有人可能幫助我嗎?謝謝!

import java.applet.Applet; 
import java.awt.event.KeyEvent; 

public class test extends Applet implements Runnable { 

public static final long serialVersionUID = 1L; 

public void start() { 
    setSize(500, 500); 
} 

public void run() { 

} 

public void keyPressed(KeyEvent e) { 
    if(e.getKeyCode() == KeyEvent.VK_ENTER) { 
     System.out.println("You are pressing ENTER!"); 
    } 
} 

public void keyReleased(KeyEvent e) { 
    if(e.getKeyCode() == KeyEvent.VK_ENTER) { 
     System.out.println("You are releasing ENTER!"); 
    } 
} 

public void keyTyped(KeyEvent e) { 

} 
} 
+0

爲什麼要編寫一個小程序?如果由於規格而到期。由老師,請參考[爲什麼CS老師應該停止教Java applets](http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should-stop-teaching-java-applets/)。 –

回答

0

運行方法是空的!?你必須有一些內容才能獲得事件。現在你的applet啓動並運行()被調用,但用完了,線程結束。測試如果是這樣的情況下,通過增加

run(){ 
    while(true){ 
     Thread.sleep(1000); 
    } 
} 

什麼

+0

您需要將'KeyListener'添加到Applet。 –

1

讓你的測試類實現java.awt.event.KeyListener,這樣就可以用來監視你的鍵盤。你所要做的就是在你的測試類中調用addKeyListener(this)。

+0

謝謝!這真的有幫助,它解決了我的問題。我將addKeyListener(this)添加到我的start()中,並在按Enter時打印出來。 :) – user2626652