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

IOshopping IOshopping 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我菜鸟来的,初学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)

高手们帮我解决下,谢谢!
...全文
评论 1
收藏 已收藏
分享
返回顶部
IOshopping
Java SE 62,620 成员 307,251 内容