我在shell下建了Composite,并且在Composite下添加其他组件
final Composite c=new Composite(shell,SWT.None);
new SystemMenu(shell,c,display);
GridData gPanelData = new GridData(SWT.FILL, SWT.FILL, true, true);
c.setLayoutData(gPanelData);
new Content(shell,c,display);//在Composite下添加其他组件的方法,c指定的第一个Composite
然后我通过一munu的addSelectionListener()方法想调用另一个Composite, 不知道怎么实现,我开始是这样写的:
item11.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
c.dispose();
final Composite c1=new Composite(shell,SWT.None);
new ClassListsystem(shell,c1,display);//在Composite下添加其他组件的方法,c1指定的第二个Composite
}
});
可第二个Composite显示不出来
本人是菜鸟,请 高手指点那!!!!!!
BTW:lz你真慷慨 这么多分就为这一句
可是我用另一menu,用同样的方法调用另一Composite时,前面的Composite却没消除,不知道怎么解决
Composite的动态调用实现了,可SHELL的size在调用不同Composite时回变化,
好像是Display.getCurrent().getActiveShell().pack();的问题
请高手指点啊!!
每次执行pack()方法的时候 shell会自动适应大小 也就是之前的setSize()方法失效
我不得已用最愚蠢的方法重新setSize()一次 这样做很不合理
请真正的高手现身指点!!
现在我是在同一Composite下面调用一些组件,以前是不同Composite来展示界面
执行情况还蛮好