我在eclipse SWT应用程序中有许多表。它们是Table / TableViewer表,由一个标题,一行左下方的文本和一系列图形组成。除文本列外,还有32列,编号从0到31。 在经典模式下的Windows 7和XP上,文本很好,但在XP正常模式下,它们被截断,因此它们似乎变为0 1 2 3 4 5 6 7 8 9 1. 1. 1. 1. 1.等。无论如何,文本都有足够的空间。
如果我只是将默认宽度设置为28而不是25,就像我发现的那样,它们很好,但显然不是很好,因为我需要更多的空间用于Windows 7和XP Classic中的界面,它已经好了。 我尝试从fontmetrics获得平均宽度,但在所有模式下文本都返回为5。我找不到任何方法来减少填充(这将是最好的方法),或找出有多少填充(这将做)。我是否需要手动绘制列标题?
ps:对于JFace / SWT很抱歉,刚刚开始这个并没有明确差异了!
答案 0 :(得分:2)
调用TableColumn#pack()
应该为列提供显示其内容所需的宽度,而不会浪费任何空间或截断其内容。这包括列的标题文本。
答案 1 :(得分:0)
您应该使用TableLayout进行表标题的更动态大小计算。一个很好的起点是以下博客文章:http://eclipsenuggets.blogspot.com/2007/11/one-of-less-prominent-novelties-in.html