阿拉伯语和英语的混合导致JTextArea(Java)出现问题

阿拉伯语和英语的混合导致JTextArea(Java)出现问题,java,swing,internationalization,bidi,Java,Swing,Internationalization,Bidi,我有一个JTextArea,它显示阿拉伯语网页的HTML。所以它基本上是英语和阿拉伯语的混合体。在JTextArea中,列设置为30时,某些文本将消失,而不是正确包装。奇怪的是,如果我复制不可见的文本并粘贴到记事本中,那么我就可以在记事本中看到它。如果我将列数更改为40,则所有内容都显示良好。有什么想法吗 正在消失的是第30个字符吗?由于脚本的原因,JTextArea可能无法正确呈现阿拉伯字符。所以它正确地计算了字符数,但没有意识到它们占用了更多的空间。对此类字体的支持不是很好,因此您可能需要为

我有一个JTextArea,它显示阿拉伯语网页的HTML。所以它基本上是英语和阿拉伯语的混合体。在JTextArea中,列设置为30时,某些文本将消失,而不是正确包装。奇怪的是,如果我复制不可见的文本并粘贴到记事本中,那么我就可以在记事本中看到它。如果我将列数更改为40,则所有内容都显示良好。有什么想法吗

正在消失的是第30个字符吗?由于脚本的原因,JTextArea可能无法正确呈现阿拉伯字符。所以它正确地计算了字符数,但没有意识到它们占用了更多的空间。对此类字体的支持不是很好,因此您可能需要为JTextArea编写一个自定义呈现程序来处理此问题(这样您可以手动考虑阿拉伯语中每个字符所需的适当空间量,并相应地调整换行)。

这是正在消失的第30个字符吗?由于脚本的原因,JTextArea可能无法正确呈现阿拉伯字符。所以它正确地计算了字符数,但没有意识到它们占用了更多的空间。对此类字体的支持不是很好,因此您可能需要为JTextArea编写一个自定义渲染器来处理此问题(因此您可以手动考虑阿拉伯语中每个字符所需的适当空间量,并相应地调整换行)。

请参阅此问题的屏幕截图:


Elie,谢谢你的回复。但我不确定我是否正确地解释了这个问题。在屏幕截图的左侧是JTextArea。右侧是粘贴到记事本的JTextArea中的选择。现在这更有意义了吗?

请查看此问题的屏幕截图:


Elie,谢谢你的回复。但我不确定我是否正确地解释了这个问题。在屏幕截图的左侧是JTextArea。右侧是粘贴到记事本的JTextArea中的选择。这一点现在更有意义了吗?

即使文本中没有阿拉伯语,您仍然会收到这一问题,还是只有在文本中添加阿拉伯语时才会收到?试着把记事本上的文字粘贴到你的文字区域,不管有没有阿拉伯语,告诉我会发生什么。是的,好主意。看来阿拉伯语不是这里的问题。这与标签有关。所有消失的行都以5个选项卡开始。如果我删除一个选项卡,使它们以4个选项卡开始,那么它们在JTextArea中显示良好选项卡的间距是多少?它被设置为6吗?它被设置为默认的8,但是更改它没有帮助。我也看到其他人报告了这个问题()我的解决方法就是用空格替换标签。谢谢你帮助我,即使文本中没有阿拉伯文,你还是会收到这个问题,还是只有在添加阿拉伯文时才会收到?试着把记事本上的文字粘贴到你的文字区域,不管有没有阿拉伯语,告诉我会发生什么。是的,好主意。看来阿拉伯语不是这里的问题。这与标签有关。所有消失的行都以5个选项卡开始。如果我删除一个选项卡,使它们以4个选项卡开始,那么它们在JTextArea中显示良好选项卡的间距是多少?它被设置为6吗?它被设置为默认的8,但是更改它没有帮助。我也看到其他人报告了这个问题()我的解决方法就是用空格替换标签。谢谢你帮我Elie