GXT - 使用TextMetrics服务器端

时间:2018-04-03 08:45:06

标签: java gwt gxt

我需要在服务器端的TextArea中从大字符串中获取确切数量的行。我已经将textArea width和nrOfLines传递给服务器端,在这里我需要返回完全适合客户端文本区域的文本量。我尝试在服务器端使用TextMetrics,但是当我没有元素时,它是不可能的。还尝试将元素发送到服务器,但它不是Serializable。那么有没有办法知道服务器端的文本宽度?

2 个答案:

答案 0 :(得分:1)

TextMetrics类实际上并不测量文本本身,而是委托给运行代码的浏览器,以便可以正确应用所有样式。

这意味着除了在浏览器中之外,您无法在任何地方运行任何TextMetrics方法 - 您可能不想在服务器上运行浏览器。当然,您可以在服务器上运行浏览器,但即使这可能还不够 - 用户可能会使用浏览器的缩放功能,可能会将其操作系统设置为帮助将文本设置为可读性的大小,或者可能安装了不同的字体。

答案 1 :(得分:0)

我认为您可以做的最好的事情是计算最宽字符的宽度(“W”),并计算这些字符中有多少符合一行并将该数字传递给服务器。客户端是唯一知道它正在使用哪种字体并且每个客户端可能使用不同字体的客户端,因为GXT主题通常只指定字体系列,并且确切的字体可能因系统而异。