Java 使用KeyboardFocusManager按键时获取插入符号位置
当“您正在使用通用按键事件分派器时,我正在尝试获取当前插入符号位置。可能的事件有按下Java 使用KeyboardFocusManager按键时获取插入符号位置,java,swing,jtextarea,keyboardfocusmanager,Java,Swing,Jtextarea,Keyboardfocusmanager,当“您正在使用通用按键事件分派器时,我正在尝试获取当前插入符号位置。可能的事件有按下按键,按键和释放按键。根据您所说的,您需要键入按键。因此,请对此进行筛选: KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() { public boolean dispatchKeyEvent(KeyEvent e) { i
按键
,按键
和释放按键
。根据您所说的,您需要键入按键
。因此,请对此进行筛选:
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() {
public boolean dispatchKeyEvent(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.KEY_TYPED) {
return ((TextClass) textArea).checkKeyTyped(e);
}
}
});
这不是您应该如何做的,您应该实现一个并将其添加到
JTextArea
中,如下所示:
final JTextArea textArea = new TextClass();
...
textArea.addKeyListener(new KeyListener() {
@Override
public void keyTyped(final KeyEvent e) {
char key = e.getKeyChar();
switch (key) {
case '<':
System.out.print(" " + textArea.getSelectionStart());
}
}
@Override
public void keyPressed(final KeyEvent e) {
}
@Override
public void keyReleased(final KeyEvent e) {
}
});
final JTextArea textArea=new TextClass();
...
addKeyListener(新的KeyListener(){
@凌驾
public void keyTyped(最终KeyEvent e){
char key=e.getKeyChar();
开关(钥匙){
案例“文档侦听器和插入符号”
final JTextArea textArea = new TextClass();
...
textArea.addKeyListener(new KeyListener() {
@Override
public void keyTyped(final KeyEvent e) {
char key = e.getKeyChar();
switch (key) {
case '<':
System.out.print(" " + textArea.getSelectionStart());
}
}
@Override
public void keyPressed(final KeyEvent e) {
}
@Override
public void keyReleased(final KeyEvent e) {
}
});