TextArea 是一个显示纯文本的多行区域。它作为一个轻量级组件,提供与 java.awt.TextArea 类的源兼容性,理应如此。有关使用所有文本组件的信息和示例,请参阅《The Java Tutorial》中 Using Text Components一节。
应用
此组件具有 java.awt.TextArea 类中没有的功能。有关其他功能,请参考超类。还有 JTextPane 和 JEditorPane 也是具有更多功能的多行文本类。 java.awt.TextArea 在内部处理滚动。JTextArea 的不同之处在于,它不管理滚动,但实现了 swing Scrollable 接口。这允许把它放置在 JScrollPane 的内部(如果需要滚动行为),或者直接使用(如果不需要滚动)。
java.awt.TextArea 具有换行能力。这由水平滚动策略来控制。由于滚动不是由 JTextArea 直接完成的,因此必须通过另一种方式来提供向后兼容性。JTextArea 具有用于换行的 bound 属性,该属性控制其是否换行。在默认情况下,换行属性设置为 false(不换行)。 java.awt.TextArea 具有两个属性 rows 和 columns,这两个属性用来确定首选大小。JTextArea 用这些属性来指示 viewport 的首选大小,此 viewport 被放置到 JScrollPane 中以匹配由 java.awt.TextArea 提供的功能。JTextArea 具有显示所有文本所需的首选大小,以便在 JScrollPane 内部正常工作。如果 rows 或 columns 的值等于 0,则沿该轴的首选大小将用于沿相同轴上 viewport 的首选大小。可以通过添加一个 TextEvent 的 TextListener 来对 java.awt.TextArea 的更改进行监视。在基于 JTextComponent 的组件中,更改通过 DocumentEvent 从模型传播到 DocumentListeners。DocumentEvent 给出了更改的位置和更改种类(如果需要)。代码片段如下所示:
DocumentListener myListener = new DocumentListener();