java - JTextArea 和显示格式问题

标签 java swing awt jtextarea layout-manager

所以,我有这个文本编辑程序,它更多地被设置为要完成的表单。

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

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

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

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

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

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

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

最佳答案

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

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

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

关于java - JTextArea 和显示格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12018156/

相关文章:

Java Event-Dispatching Thread解释

java - AbstractTableModel 和单元格编辑器

java - 针对多个 Java 版本进行测试的最佳方法

java - JPanels 在重叠期间闪烁

java - 试图让 JTable + JScrollPane 滚动

java - 无法使 Java GridBagConstraints 工作

java - openCSV 库从变量中删除引号

java - 这个打印可以在 Flash/Java 中完成吗?

java - 如何使用 MigLayout 在面板上绘制分隔符

java - 让球返回小程序