我菜鸟来的,初学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)高手们帮我解决下,谢谢!