1

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

我不会考虑解析时间因素,但设置文本所用时间因素对我来说确实很重要。现在我想知道

阿拉伯语排版字体有什么技术问题,不兼容还是很重?

  1. 因为settext比其他人需要很多时间。
  2. 消息出现后也没有立即出现文本。
  3. 调整窗口大小时,GUI 也会冻结一段时间。以及如何解决?
4

0 回答 0