gpt4 book ai didi

Java:在 JTextPane 上注册 按键

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:13:33 25 4
gpt4 key购买 nike

我正在使用具有 JTextPane 的 java 制作应用程序。我希望能够在按下 enter 键时(或当用户转到下一行时)执行一些代码。我在网上看过,但没有找到解决方案。用 C# 解决这个问题会更好吗?如果没有,我如何在 JTextPane 的 keyTyped() 事件中注册 Enter 键?如果 C# 是一个不错的选择,我将如何在 C# 中执行此操作?

这是一个我认为可行的解决方案......但没有

//Event triggered when a key is typed
private void keyTyped(java.awt.event.KeyEvent evt) {
int key = evt.getKeyCode();
if (key == KeyEvent.VK_ENTER) {
Toolkit.getDefaultToolkit().beep();
System.out.println("ENTER pressed");
}
}

为什么上面的例子不起作用是因为无论我按哪个键,我得到的 keyCode 都是 0。我更喜欢用 Java 解决这个问题,但 C# 也可以工作,也许更好。另外,请尝试用例子而不是链接来回答问题(除非你真的需要)。谢谢!

最佳答案

一种解决方案是在文本 Pane 上添加一个键绑定(bind)。例如,

  JTextPane textPane = new JTextPane();

int condition = JComponent.WHEN_FOCUSED;
InputMap iMap = textPane.getInputMap(condition);
ActionMap aMap = textPane.getActionMap();

String enter = "enter";
iMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), enter);
aMap.put(enter, new AbstractAction() {

@Override
public void actionPerformed(ActionEvent arg0) {
System.out.println("enter pressed");
}
});

关于Java:在 JTextPane 上注册 <ENTER> 按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7439309/

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