java - 将 KeyEvent 传递给不同的组件
问题描述
我试图让 JTextArea 获得焦点,但如果用户输入键盘输入并且未按下控件,则将该键事件转发到命令 JTextField。
我试图简单地将键字符附加到 JTextField 中的文本中,但是当按下除字母、符号或数字之外的任何内容时,这会导致未知字符。
newField.addKeyListener(new KeyListener() {
@Override
public void keyPressed(KeyEvent e) {
if(!e.isControlDown()) {
Console.consoleWindow.appendTextToCMD(e.getKeyChar());
}
}
});
解决方案
您需要在其他 JComponent 上使用 processEvent。此外,您需要创建一个新的 AWTEvent - 复制所有字段,但源是新的 JComponent
推荐阅读
- serilog - Serilog 不在生产服务器上创建日志文件
- python - Python/SQL/pydobc:获取计数器的 if 操作结果?
- c - 为什么将 &str 转换为 *const i8,将其发送到 C 或从 C 发送,然后再转换回 &str 会导致 Utf8Error?
- python - python图中的3d效果
- java - 如何将手机铃声重置为系统默认设置?
- istio - 上游连接错误或在标头之前断开/重置。重置原因:连接失败
- php - 为 WooCommerce 产品属性创建自定义按钮
- java - 如何将文件本身作为项目处理?
- ubuntu - 主管使用所有 cpu 电源
- reactjs - 为什么 useEffect 不直接支持异步回调或者清理函数有单独的参数?