我JTextArea
用来在 Java 中显示乌尔都语、阿拉伯语和英语的繁重文本。问题是当我为. JTextArea
我从 XML 获取文本,然后在 textarea 中显示,也使用linewrap
. 当我重新调整窗口大小时,我的窗口也会冻结大约5 秒。虽然在控制台上我被告知设置文本所花费的时间:7.005但是当显示消息时它并没有立即在 JTextArea 中显示文本,而是在大约 5 秒后显示。JTextArea、JTextPane 和 JTextEditor 的情况相同。
有趣的是,当我使用其他字体时,并没有出现上述问题。在控制台上出现设置文本消息所花费的时间后,文本也会立即出现。我对此进行了多次测试,但情况相同。
我在做某事
//note time for start parsing
String text=getTextFromXML();
//show parsed time
System.out.print("Setting text.");
textarea.setText(text);
System.out.println("Setting text done.");
//show time taken to set text
以下是不同字体的一些示例输出,时间以秒为单位:
**Arabic typesetting**//Arabic font
Parsing Time: 0.171 Setting text. Setting text done.
Time taken for setting text: 7.005 //much time taken relevant to others
Text size: 57124 //string length text.length();
**Adobe Arabic**//Arabic font
Parsing Time: 0.172 Setting text. Setting text done.
Time taken for setting text: 0.499
Text size: 57124
**Andalus**//Arabic font
Parsing Time: 0.109 Setting text. Setting text done.
Time taken for setting text: 1.388
Text size: 57124
**Thoma**
Parsing Time: 0.172 Setting text. Setting text done.
Time taken for setting text: 0.655
Text size: 57124
**Times New Roman**
Parsing Time: 0.125 Setting text. Setting text done.
Time taken for setting text: 0.515
Text size: 57124
我不会考虑解析时间因素,但设置文本所用时间因素对我来说确实很重要。现在我想知道
阿拉伯语排版字体有什么技术问题,不兼容还是很重?
- 因为
settext
比其他人需要很多时间。 - 消息出现后也没有立即出现文本。
- 调整窗口大小时,GUI 也会冻结一段时间。以及如何解决?