1

我正在使用org.eclipse.swt.widgets.List动态添加一些项目。

但是,每个字符串的大小都大于List.

String每次将新添加到列表中时,如何重新计算列表的大小List

编辑 1
抱歉这个问题太天真了,SWT 还是个新手。

这就是我创建它的方式:

Group parentGrp = new Group(threeColComposite,SWT.NONE);  
parentGrp.setText("Interfaces Present in Selected jar");  
parentGrp.setLayout(new GridLayout(1,false));  
parentGrp.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));  
myList = new List(parentGrp, SWT.BORDER | SWT.V_SCROLL | SWT.MULTI);  
myList.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

我没有使用单独的布局,list因为它是父组的唯一子项。如果没有使用布局是错误的吗?

编辑 2
@Baz:我在方法中使用了您在此处回答的片段createMiddleContent()

4

2 回答 2

3

我认为最好的方法是创建您赢得的自定义列表(例如查看http://www.snip2code.com/Snippet/11489/Custom-SWT-List-Box以创建这样的列表),然后在此处直接管理事件

于 2013-10-21T17:49:50.887 回答
0

Layout 类及其子类提供了调整大小的行为,尽管是间接的。布局缓存列表的原始大小并使用该大小,即使在您向列表中添加更多(和更长)项目后也是如此。修复方法是告诉布局在刷新其缓存后布局特定控件及其子项(所有一种布局方法)。您传入的小部件/控件取决于列表周围有多少小部件需要调整大小,因为列表已调整大小。

当然,您使用的布局必须与最初布置小部件的布局相同。

于 2012-10-28T18:04:11.633 回答