【问题标题】:JTextArea and display formatting issuesJTextArea 和显示格式问题
【发布时间】:2012-08-18 11:26:36
【问题描述】:

所以,我有这个文本编辑程序,它设置的更多是作为一个表格来完成的。

我不确定如何创建程序的编辑器部分。 一方面,由于 JTextArea,我会很高兴有某种布局,以便它根据输入的文本数量(启用自动换行和所有)扩展和缩回。

但是,我的文档由一系列问题(以及几个给出的答案)组成。 问题中的行数 (JTextArea) 和答案中的行数 (JTextArea) 是可变的,就像每个问题给出的答案数一样。

我的编辑区域由页面列组成(将根据需要添加和删除),并且我必须以某种方式检测某个问题何时超出页面范围(准确地说是其页边距) .

所以最后,我需要某种半刚性布局管理器。一方面使用 setPreferredSize 使 JTextAreas 可调整大小,另一方面,当页面被填满到添加任何其他内容会破坏页面美观的程度时,会检测到程序移动到下一页的情况。

要记住的一件事是,我打算让用户在文档中添加/删除整个问题和一些答案,不一定在最后。

(整个内容仅用于向用户呈现文档(并使其可编辑),稍后将导出为 pdf,但这是另一回事)

我什至不必使用 JTextAreas(如果你有更好的东西),你可以建议任何类型的外部 java 库,我只是想让它工作......

【问题讨论】:

  • 为什么不JEditorPane - 用于编辑各种内容的文本组件。
  • 看起来这需要滚动窗格,而不是一个特别聪明的布局。
  • 没有滚动窗格。我代表一张 A4 纸,一切都必须是二维的,没有重叠。使用滚动窗格可能会解决定位组件的问题,但它并不能真正解决我的问题......

标签: java swing awt jtextarea layout-manager


【解决方案1】:

您可以检测高度以显示具有固定宽度的 JEditorPane 的某些内容 http://java-sl.com/tip_text_height_measuring.html

因此,逐步添加您的内容,测量是否达到允许的高度。完成后创建一个新页面。

或者,您可以使用分页在 JEditorPane 中添加所有内容(在此处描述 http://java-sl.com/articles.html

【讨论】:

    猜你喜欢
    • 2015-08-19
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多