java - 使用 LWJGL 进行文本输入

标签 java text lwjgl textinput

我正在寻找一种通过 LWJGL 接收文本输入的解决方案。我不是指 LWJGL 提供的那种标准键盘事件输入,我正在寻找接收实际文本输入行的能力,就像 AWT/Swing 提供的 TextFields 一样。我这样做主要是为了学习,因此,我对使用 LWJGL 之外的库(例如 TWL)没有兴趣。

目前,我有这样的事情:

    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);
        }
    }

但是,它无法正确处理移位,也无法正确处理上述任何其他特殊命令。那么,最好的做法是什么?

最佳答案

看看this file NiftyGUI的源代码,其中应包含此文本处理代码。

关于java - 使用 LWJGL 进行文本输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11729097/

相关文章:

php - 使用 PHP 从 HTML 表单写入文本文件

java - 更新 GPU 驱动程序后 OpenGL 支持中断

Java:动态连接未指定数量的二维数组

java - 如何导入常量字段

html - 如何让 HTML Tidy 在关闭标签之前不放置换行符?

css - 将文本悬停在具有绝对位置的图像上

java - ArrayList 中的顶点缓冲区对象?

java - 对象上的 LWJGL 纹理 - Java

java - 密码验证服务

java - Selenium 启动错误 : org. openqa.selenium.firefox.NotConnectedException : Unable to connect to host 127. 0.0.1 在端口 7055 上