从JTextArea控件访问wrap属性

时间:2018-01-05 19:52:08

标签: java jtextarea

我的Java应用程序中有一个名为JTextArea的{​​{1}}控件。我已将txtInput设置为true,将lineWrap设置为true。

单击按钮控件时,换行符是否可以自动合并到wrapWordStyle(来自String控件)中,还是必须处理字符串?

例如,如果我输入的文字是:

JTextArea example

然后我的字符串就像

  

“这是一个测试,看看我是否可以获得新行\ n合并”

感谢。

2 个答案:

答案 0 :(得分:0)

直接获取\ n是不可能的,但您可以处理字符串并手动引入\ n: 首先,您需要将文本中的所有不同行分隔为数组。 duration 然后将它们连接在变量String[] lines = yourTextArea.getText().split("\\n");中,其中包含\ n: String finalText和finalText将是您在每行末尾用\ n引入的文字。

答案 1 :(得分:0)

JTextArea没有这种类型的文本检索的简单方法。老实说,如果这是您绝对需要的功能,我可以采取一些步骤来寻找可能的解决方案。

首先,将JTextArea的字体设置为monospace字体。有关如何执行此操作的说明,请参阅here

完成此操作后,将JTextArea设置为具有固定宽度,并确定在具有该固定宽度的行中适合的字符数。

一旦你知道一行中有多少个字符,就在你的班级中创建该数字的最终整数。使用常规getText()方法读入字符串,并根据该数字将其分解为多个部分。如需解决方法,请参阅here

从那里,随意将\n附加到每一行。

我知道这将是一个混乱的解决方案,它会删除动态更改JTextArea宽度的能力,但我相信如果实施得当它会起作用。如果您有任何问题,请告诉我。

希望这有帮助!

更新:如果WrapStyleWord设置为true,这实际上可能无效。尽管使用了这种方法的主要思想,你仍然可以弄明白。每行的字符数不会改变,但是如果你在一个单词的中间,你必须在你休息之前跳回到它的开头。