swt 添加数据库记录  assertion failed: ContentViewer must have a content provider when input is set.
程序主要是实现数据库管理
主界面显示数据库的全部记录
有添加功能
事件处理过程:
		addbtn=new Button(panel,SWT.NONE);
		addbtn.setText("添加");
		addbtn.addSelectionListener(new SelectionAdapter(){
         		public void widgetSelected(SelectionEvent event){        			
         			newaddscheduler=new Addscheduler(display);///子界面 数据的输入界面
         			AllBean ab=new AllBean();
//            			scheduler_tableViewer.setContentProvider(new ContentProvider());
//                		scheduler_tableViewer.setLabelProvider(new TableLabelProvider());
                 		scheduler_tableViewer.setInput(ab.getschedulers());
                 		scheduler_tableViewer.refresh();	
         		}
         	});
子界面的退出按钮只有 shell.dispose();
我不知道哪里错了呀...弄了一个早上..完全找不到北...
因为它提示的是这个异常..我还尝试过加上被注释掉的那两种代码..可是添加后异常就变成" org.eclipse.swt.SWTException: Widget is disposed...
到底是什么问题呢? 我刚刚开始学SWT..先谢谢帮忙...
------解决方案--------------------
assertion failed: ContentViewer must have a content provider when input is set!
应该是scheduler_tableViewer.setInput(ab.getschedulers()); 吧!
org.eclipse.swt.SWTException: Widget is disposed
是因为你的对象已经销毁了,你不能对已经销毁的对象进行任何操作!
------解决方案--------------------
viewer都需要搭配ContentProvider和LabelProvider使用,ContentProvider提供数据,LabelProvider提供显示。
这是JFace的基础
------解决方案--------------------
一楼的说的很对,如果你还要操作这个界面的话建议你不要 销毁他(dispose())
最好用 .setVisible(boolean);