Moh*_*dib 9 java swing keycode jtextpane actionlistener
我正在使用具有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");
}
}
Run Code Online (Sandbox Code Playgroud)
为什么上面的例子不起作用是因为无论我按哪个键,我得到一个0的keyCode.我更喜欢用Java解决这个问题但是C#也可以工作,也许更好.另外,请尝试用示例而不是链接回答问题(除非您确实需要).谢谢!
Hov*_*els 13
一种解决方案是在文本窗格上添加键绑定.例如,
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");
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18367 次 |
| 最近记录: |