我正在使用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中的代码段
答案 0 :(得分:3)
我认为最好的方法是创建您赢得的自定义列表(例如检查http://www.snip2code.com/Snippet/11489/Custom-SWT-List-Box以创建此类列表),然后直接在此处管理事件
答案 1 :(得分:0)
Layout类及其子类提供了调整大小的行为,尽管是间接的。布局缓存列表的原始大小,即使在向列表中添加更多(和更长)项目后也会使用该大小。修复是告诉布局在刷新其缓存(所有一种布局方法)后布局特定控件及其子窗口。您传入的小部件/控件取决于列表大小调整后,需要调整列表周围的小部件数量。
当然,您使用的布局必须与首先布置小部件的布局相同。