SWT问题-向Shell里面添加组件报错

IOshopping 2010-07-16 06:51:38
我菜鸟来的,初学SWT,今天遇到这个问题,附上源码:
//import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

//import com.swtTestPro.util.SwtUtil;
import com.swtdesigner.SWTResourceManager;
import org.eclipse.swt.SWT;

public class SwtTest {

//private SwtUtil swtUtil = new SwtUtil();//实例化设置Shell居中这个类

private Display display;//声明Display

private Shell shlSwt;//声明Shell

//private Button[] topBt = new Button[4];//定义一个按钮数组(该按钮放在主窗体的上边)

private Button searchBt;//声明查找按钮

//private Button[] leftBt = new Button[4];//定义一个按钮数组(该按钮放在主窗体的右边)

/**
* Launch the application.
* @param args
*/
public static void main(String[] args) {
try {
SwtTest window = new SwtTest();
window.open();
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* Open the window.
*/
public void open() {
display = Display.getDefault();
createContents();
shlSwt.open();//打开主窗体
shlSwt.layout();//设置shell的布局方式
while (!shlSwt.isDisposed()) {//如果主窗体没有关闭则一直循环
if (!display.readAndDispatch()) {//如果display不忙
display.sleep();//休眠
}
}
display.dispose();
}

/**
* Create contents of the window.
*/
protected void createContents() {
/*
searchBt = new Button(shlSwt,SWT.PUSH);
searchBt.setText("查找");
*/

shlSwt = new Shell();
shlSwt.setToolTipText("SWT测试");
shlSwt.setBackground(SWTResourceManager.getColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND));
shlSwt.setSize(250, 650);
shlSwt.setText("SWT测试");
// swtUtil.centerSell(display, shlSwt);
}
}

/*
searchBt = new Button(shlSwt,SWT.PUSH);
searchBt.setText("查找");
*/
不注释这两行,程序运行的时候就报以下错误:
java.lang.IllegalArgumentException: Argument cannot be null
at org.eclipse.swt.SWT.error(SWT.java:3761)
at org.eclipse.swt.SWT.error(SWT.java:3695)
at org.eclipse.swt.SWT.error(SWT.java:3666)
at org.eclipse.swt.widgets.Widget.error(Widget.java:463)
at org.eclipse.swt.widgets.Widget.checkParent(Widget.java:273)
at org.eclipse.swt.widgets.Widget.<init>(Widget.java:146)
at org.eclipse.swt.widgets.Control.<init>(Control.java:101)
at org.eclipse.swt.widgets.Button.<init>(Button.java:113)
at com.swtTestPro.face.SwtTest.createContents(SwtTest.java:59)
at com.swtTestPro.face.SwtTest.open(SwtTest.java:44)
at com.swtTestPro.face.SwtTest.main(SwtTest.java:33)

高手们帮我解决下,谢谢!
...全文
103 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jclick 2010-07-18
  • 打赏
  • 举报
回复
错误提示:非法声明异常,声明不能为空。你注释掉最后两行,等于没有构造按钮。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧