按下enter键时添加字符(或字符串)(在JTextPane中)

时间:2017-06-14 16:50:45

标签: java swing jtextpane

所以我有一个 JTextPane ,我添加了一个keyListener,就像我知道是否按下了enter按钮一样:

JTextPane textPane = new JTextPane();

textPane.addKeyListener(new KeyListener() {
        @Override
        public void keyTyped(KeyEvent e) {
        }
        @Override
        public void keyPressed(KeyEvent e) {

            if(e.getKeyCode() == KeyEvent.VK_ENTER){
                // add there the code to add a character to the textPane!
            }
        }
        @Override
        public void keyReleased(KeyEvent e) {
        }
    });

但现在我很沮丧,如何在textPane中添加一个字符'}'
(不是在光标位置之后的任何地方,到下面的......)

1 个答案:

答案 0 :(得分:2)

正如@HovercraftFullOfEels上述评论所示,请勿使用KeyListener收听输入键,而应使用KeyBindings或{{ 3}}。这是来自Hovercraft的DocumentListener使用了Key Bindings,虽然它不是JTextPane,但你可以从那里采取一般的想法。

要在插入符号位置附加文字,您可以尝试使用文档中的answer

  

使用给定字符串表示的新内容替换当前选定的内容。 如果没有选择,则相当于给定文本的插入。如果没有替换文本,则相当于删除当前选择。替换文本将具有当前为插入点处的输入定义的属性。如果文档不可编辑,请发出哔声并返回。