gpt4 book ai didi

java - SWT 文本在错误位置换行

转载 作者:行者123 更新时间:2023-11-30 04:51:45 26 4
gpt4 key购买 nike

注意:此问题仅出现在 Mac 上,在 Windows 上正常。

我有一个 SWT 文本小部件,我想在其中插入相当大的文本。

//simplified large string from StringBuilder
String something="";
for(int i=0;i<10;i++){
something += smp1+"\t"+smp2+"\t"+smp3+"\n";
}

final Text text = new Text(shell, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL );
text.setBounds(10, 50, 880, 280);
text.setText(something);

问题是,尽管空间太大 (880px),但如果行中存在两个以上的“\t”(制表符)字符,则文本会在 400px 的某个位置中断。当在文本框中写入“”(空格)时,该行会按应有的方式继续,并且不会换行。

将字符串输出到控制台显示效果很好,因此我认为问题不在于字符串,而在于文本控件。

我尝试了所有我能想到的方法,但没有解决这个问题。

感谢任何帮助。

最佳答案

SWT 中的小部件是由操作系统 native 绘制的 - 这就是该库的要点。这就是“保留”特定于操作系统的怪癖的原因。

但是,虽然 Text 是 native 绘制的,但 StyledText 不是,它是由 SWT“手动”绘制的,以便为所有支持的平台提供高级功能。

所以您可能想尝试 StyledText - 是的,这只是一种解决方法,并且具有非 native 小部件理论上的缺点,例如性能较差、行为不同等等,但是您很可能不会注意到任何差异。但如果您幸运的话,它可以解决您的问题。

关于java - SWT 文本在错误位置换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9687984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com