gpt4 book ai didi

java - KeyEvent 不理解 ENTER 键

转载 作者:行者123 更新时间:2023-12-02 13:42:35 26 4
gpt4 key购买 nike

我正在使用java创建一个记事本。似乎有一个小问题。Java没有得到具有有关ENTER键条件的代码行。它理解ctrl和Alt。但不理解enter。只是跳过该部分!我能做什么?`

if( !e.isControlDown() && !e.isAltDown() && e.getKeyCode() != KeyEvent.VK_ENTER)
{
frame.wholeText.linesList.get(frame.cursor.j).chars.add(frame.cursor.i,c);
frame.cursor.i += 1 ;
System.out.println("Entered");
charMetric = frame.getFontMetrics( frame.getFont() ).charWidth(c) ;
frame.cursor.setX( frame.cursor.getX() + charMetric );

}`

PS:当我按 ENTER 时,它不应该进入这种情况,但它确实发生了。PS2:它位于代码的KeyTyped部分。

最佳答案

documentation for KeyEvent.getKeyCode()非常清楚:

Returns: the integer code for an actual key on the keyboard. (For KEY_TYPED events, the keyCode is VK_UNDEFINED.)

相反,KeyEvent.getKeyChar()说:

KEY_PRESSED and KEY_RELEASED events are not intended for reporting of character input. Therefore, the values returned by this method are guaranteed to be meaningful only for KEY_TYPED events.

KEY_PRESSED 和 KEY_RELEASED 事件生成具有有效 keyCode 但没有 keyChar 的 KeyEvent。 KEY_TYPED 事件则相反:它们生成具有有效 keyChar 的 KeyEvent,但 keyCode 始终未定义。

您正在检查 KEY_TYPED 事件的 getKeyCode() 值,因此 keyCode 将始终未定义。

使用 e.getKeyChar() != '\n' 或在 keyPressed 中执行 keyCode 检查方法。

关于java - KeyEvent 不理解 ENTER 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42658049/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com