我正在尋找通過LWJGL接收文本輸入的解決方案。我並不是指由LWJGL提供的標準鍵盤事件輸入,我正在尋找接收實際文本輸入行的功能,就像AWT/Swing提供的TextField一樣。我這樣做主要是爲了學習的興趣,因此,我沒有興趣使用LWJGL之外的庫(如TWL)。使用LWJGL輸入文本
目前,我有這樣的事情:
private boolean shift = false;
private void chatControls(float ticksPassed) {
while (Keyboard.next()) {
if (Keyboard.isKeyDown(Keyboard.KEY_RETURN)) {
this.ui.toggleChat();
} else if (Keyboard.isKeyDown(Keyboard.KEY_DELETE)) {
this.chatText = "";
} else if (Keyboard.isKeyDown(Keyboard.KEY_BACK) && Keyboard.getEventKeyState()) {
try {
this.chatText = this.chatText.substring(0, chatText.length() - 1);
} catch (StringIndexOutOfBoundsException e) {}
} else if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) {
shift = Keyboard.getEventKeyState();
} else if (Keyboard.getEventKeyState() && !jtLetter) {
if (shift) {
this.chatText += Character.toUpperCase(Keyboard.getEventCharacter());
} else {
this.chatText += String.valueOf(Keyboard.getEventCharacter());
jtLetter = true;
}
} else {
jtLetter = false;
}
this.ui.updateChat(chatText);
}
}
但是,它不管理,妥善處理移位,也沒有上述的任何其它特殊命令。那麼,最好的做法是什麼?
非常感謝,它確實有一個相對簡單的解決方案。這是[這裏](https://github.com/void256/nifty-gui/blob/1.3/nifty-renderer-lwjgl/src/main/java/de/lessvoid/nifty/renderer/lwjgl/input/LwjglKeyboardInputEventCreator.java )爲其他人尋找。 – 2012-08-05 21:18:04
很高興能幫到你! – Oskar 2012-08-06 08:11:50