.如何将我的文本分布在多个 jtext窗格中?



我正在用java构建一个简单的单词编辑器。目前,一切正常。现在我想创建"页面",就像在单词中一样。代表页面的 JTextPane 应该检查它是否已满,然后在它下面创建一个新的 JTextpane。使用滚动条,我将能够在它们之间滚动。到目前为止,这不会有问题。但是,所有页面都应该属于一个文档,如果我删除第 2 页上的一行,则其他页面上的每一行都将向上移动。(例如)有没有一种简单的方法可以做到这一点,或者我必须为每个 JTextPane 创建 DocumentListeners,在每次更改时更改所有内容?另外,有没有办法在多个页面上扩展选择?

就我个人而言,我还没有尝试过任何东西,因为在把自己写到角落之前,我想要一些技巧。我认为我可以使页面不可编辑,而是使用 caretListener 来检查用户单击的位置,编辑包含实际文档的不可见的无限 JTextPane,这会将其内容写入可见页面。

很多未知数,但也许以下内容会给你一些思考。

所有页面应属于单个文档,

同意。

代表页面的 JTextPane 应该检查它是否已满,然后在它下面创建一个新的 JTextpane

也许将每个文本窗格添加到 JScrollPane,但不显示滚动窗格的滚动条或边框。

如果我删除第 2 页上的一行,则其他页面上的每一行都将向上移动

您需要手动控制每个滚动窗格的视口。第一页会将视口定位在偏移量 0 处。下一页会将视区定位在表示页面高度的偏移量处。

然后,对文档所做的任何更改都应自动反映在所有文本窗格中。

您可能还需要使用setAutoScrolls(false)来防止视口在拖动鼠标时滚动。

有没有办法将选择扩展到多个页面?

所选内容是文本窗格的属性,而不是文档的属性。

不确定当您尝试将鼠标从一个文本窗格拖动到另一个文本窗格时会发生什么。

我猜你可能需要一些特殊的逻辑。也许使用鼠标输入/退出事件来触发这种类型的处理。

最新更新