有没有一种方法可以在布局标签之前获取标签计算出的确切尺寸。
换句话说,我们说一个标签的句子很长:
嗨,你好吗,我叫邦德,我没有名字,我住在伦敦,但这个世界是我的家。我在这里玩耍和享受。
这是一行。但是,如果窗口不够大,则标签会分成两行。
我想在布局之前找出最终要占用的高度(这是为了我可以相应地调整字体大小,以便将其显示在一行中)。
但是,如果我这样做,label.computeSize(SWT.DEFAULT, SWT.DEFAULT)
它只会返回所需的大小,而无需包装。
如果有一种方法可以做到,那就太好了。
所有拳头都Label
必须以SWT.WRAP
风格来创造。否则,它将永远不会包装其文本。
然后,您需要告诉computeSize
标签应具有的宽度。否则computeSize
,不知道要在何处换行并计算展开后的文本的大小。
如果指定标签的所需宽度,computeSize
将返回必要的高度。
例如
Label label = new Label( shell, SWT.WRAP );
label.setText( "Snippets are minimal stand-alone programs that demonstrate specific techniques or functionality." );
Point size = label.computeSize( 200, SWT.DEFAULT );
System.out.println( size ); // Point {202, 47}
返回的size
是Point
其x
字段(几乎)是所需的宽度,并且该y
字段表示显示包装的文本所需的高度。
在我的系统上,大小为{202,47}(文本跨越两行),但这可能因平台和字体大小而异。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句