gpt4 book ai didi

java - 阻止 JTextPane 接收新换行符

转载 作者:行者123 更新时间:2023-12-01 16:54:52 24 4
gpt4 key购买 nike

我希望我的 JTextPane 在用户按 Enter 时具有一些功能,而不仅仅是更改行。现在我明白了如何实现我想要的功能,但我仍然无法通过按 Enter 取消换行。我已尝试以下方法,但似乎不起作用,无论如何都会创建新行。

为了更好地了解我在这里想要实现的目标,文本 Pane 应该包含特定的文件路径,因此我希望用户能够仅水平滚动而不是垂直添加新行。 JTextPane 组件适合这种用途吗?

locationPane = new JTextPane();
locationPane.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent arg0) {
if(arg0.getExtendedKeyCode() == KeyEvent.VK_ENTER){
locationPane.setText(locationPane.getText().substring(0, locationPane.getText().length()));
}
}
});

最佳答案

KeyListener 从来都不是文本组件的合适解决方案。相反,您应该使用 DocumentFilter 来过滤掉您不想添加到底层 Document 中的内容。

参见Implementing a Document Filter了解更多详情

您还可以更改 insert-break 键绑定(bind)、更改行为或采取其他操作。

参见this example了解更多详情

关于java - 阻止 JTextPane 接收新换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34545889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com