首页 > 解决方案 > 将 KeyEvent 传递给不同的组件

问题描述

我试图让 JTextArea 获得焦点,但如果用户输入键盘输入并且未按下控件,则将该键事件转发到命令 JTextField。

我试图简单地将键字符附加到 JTextField 中的文本中,但是当按下除字母、符号或数字之外的任何内容时,这会导致未知字符。

newField.addKeyListener(new KeyListener() {

            @Override
            public void keyPressed(KeyEvent e) {
                if(!e.isControlDown()) {
                    Console.consoleWindow.appendTextToCMD(e.getKeyChar());
                }
            }
        });

标签: javaswingkeylistenerkeyevent

解决方案


您需要在其他 JComponent 上使用 processEvent。此外,您需要创建一个新的 AWTEvent - 复制所有字段,但源是新的 JComponent


推荐阅读