如何在添加项目时动态调整List的大小?

时间:2012-10-27 14:21:00

标签: java swt

我正在使用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()方法的答案here中的代码段

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

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