0

聊天界面

我使用 2 JEditorPane 将文本从一个传输到另一个。

传输数据后,我将执行以下操作:

JEditorPane.setText(null);

JEditorPane.setCaretPosition(0);

但正如您从所附图像中看到的那样,返回操作使提示出现在一行下方。我怎样才能解决这个问题?

编辑:以下内容对您来说是否正确?如果是这样,那么为什么插入符号不将自身定位到字符 0 位置?

    private class MyKeyAdapter extends KeyAdapter {

    @Override
    public void keyPressed(KeyEvent ke) {

        int kc = ke.getKeyCode();

        if (kc == ke.VK_ENTER) {

            System.out.println(editorPaneHistory.getText());

            System.out.println(editorPaneHomeText.getText());

            editorPaneHistory.setText(editorPaneHomeText.getText());

            //JEditorPane - editorPaneHistory
            //JEditorPane - editorPaneHomeText

            editorPaneHomeText.setText(null);

            editorPaneHomeText.setCaretPosition(0);

        }
    }
}
4

2 回答 2

1

代码运行后,JEditorPane 会以通常的方式对 enter 键做出反应,即插入换行符。尝试调用ke.consume()以“使用”该事件,以便 JEditorPane 本身不处理它。

于 2010-04-26T20:53:56.277 回答
0

不要使用 KeyListener。您应该使用自定义操作。这样你就可以替换默认的Action。阅读Key Bindings

于 2010-04-27T02:20:12.857 回答