覆盖JTextPane中TAB的默认行为

Ita*_*man 5 java swing

我正在实现一个基于JTextPane的文本编辑器.目前,当我有一段选定的文本时,按TAB键会删除所选的文本.我想更改此行为,以便TAB将缩进所选文本.

怎么去呢?

Von*_*onC 5

沿线的东西:

public void keyPressed ( KeyEvent event ) {
        switch ( event.getKeyCode ()) {
            case KeyEvent.VK_TAB :
                insertTabChar ( event.isShiftDown ());
                event.consume ();
                break;
            case KeyEvent.VK_ENTER :
                snapshot ();
                insertNewLine ();
                event.consume ();
                break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

你有一些课程,就像一样.

特别是功能

    /**
     * manage keyboard tabbing, implementing blockindent.
     * @param isUnindent
     */
    private void insertTabChar ( boolean isUnindent ) {

        snapshot (); // snapshot current setup

        if ( isSelection ) { // blockindent
Run Code Online (Sandbox Code Playgroud)

可能会做你需要的.