【问题标题】:Override default behavior of TAB in JTextPane覆盖 JTextPane 中 TAB 的默认行为
【发布时间】:2009-02-05 13:09:24
【问题描述】:

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

怎么办?

【问题讨论】:

    标签: java swing


    【解决方案1】:

    类似的东西:

    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;
            }
        }
    

    你有一些类可以做到这一点,比如this one

    特别是函数

        /**
         * manage keyboard tabbing, implementing blockindent.
         * @param isUnindent
         */
        private void insertTabChar ( boolean isUnindent ) {
    
            snapshot (); // snapshot current setup
    
            if ( isSelection ) { // blockindent
    

    可能会做你需要的。

    【讨论】:

      【解决方案2】:

      另一种方法是重新定义与 TAB 键关联的 JTextArea 组件的操作。看看 ActionMap。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-10
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多