swt/jface做了一个窗口,上面放几个控件,可每次运行时都不显示控件,要将窗口全屏显示后才会出现。?

程序源代码如下:importorg.eclipse.swt.SWT;importorg.eclipse.swt.custom.ViewForm;importorg.ecl... 程序源代码如下:
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ViewForm;
import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.CoolBar;
import org.eclipse.swt.widgets.CoolItem;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;

public class SimpleEditor2 {
public static void main(String[] args){
Display display=Display.getDefault();
Shell shell=new Shell();
shell.setText("hello");
shell.setBounds(34,54,300,400);

shell.open();
shell.layout();
shell.setLayout(new FillLayout());
final ViewForm viewForm=new ViewForm(shell,SWT.NONE);
viewForm.setLayout(new FillLayout());
final Text text=new Text(viewForm,SWT.BORDER|SWT.V_SCROLL);
viewForm.setContent(text);
CoolBar coolBar=new CoolBar(viewForm,SWT.NONE);
{
ToolBar toolBar=new ToolBar(coolBar,SWT.NONE);
ToolItem getItem=new ToolItem(toolBar,SWT.PUSH);
getItem.setText("get");
getItem.setImage(new Image(display,"icons/selectall.gif"));
ToolItem clearItem=new ToolItem(toolBar,SWT.PUSH);
clearItem.setText("clear");
clearItem.setImage(new Image(display,"icons/remove.gif"));
CoolItem coolItem=new CoolItem(coolBar,SWT.NONE);
coolItem.setControl(toolBar);
toolBar.pack();
Point size=toolBar.getSize();
coolItem.setSize(size);
coolItem.setMinimumSize(size);
}

Combo combo=new Combo(coolBar,SWT.BORDER);
combo.add("http://www.sdfi.edu.cn");
combo.select(0);
CoolItem coolItem=new CoolItem(coolBar,SWT.NONE);
coolItem.setControl(combo);
combo.pack();
Point size=combo.getSize();
coolItem.setSize(size);
coolItem.setMinimumSize(size);

viewForm.setTopLeft(coolBar);

coolBar.addControlListener(new ControlAdapter(){
public void controlResized(ControlEvent e){
viewForm.layout();
}
});

while(!shell.isDisposed()){
if(!display.readAndDispatch()){
display.sleep();
}
}

display.dispose();

}

}
展开
 我来答
分享是快乐的源泉
2009-05-27 · TA获得超过852个赞
知道小有建树答主
回答量:149
采纳率:0%
帮助的人:107万
展开全部
//初始完控件后要layout()就行了
shell.layout();

//在这个位置之前添加
while(!shell.isDisposed())
{
if(!display.readAndDispatch())
{
display.sleep();
}
}

display.dispose();

}

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式