最近在用Visual Editor设计一个基于SWT 商品进销存的桌面应用程序的毕业设计
数据库的连接,查询结果新界面显示已经解决
有几个像商品信息表,顾客信息表之类的数据库基本表需要在界面中显示出来
计划在swt controls下的table中显示
相应的有添加,修改,删除功能,然后在table中反应出来,进而修改数据库
可小弟水平有限,上网找了一下资料 也都是jtable显示数据库的教程和例子
不知道有没有高手有类似经验 swt下的table能不能达到我想要的效果
用什么方法可以?
希望能得到指导 不胜感激
------解决方案--------------------
让单元格可编辑,然后要么做个提交按钮来统一修改数据,要么直接监听数据更新事件,只要一更新数据就提交数据库,不过这样的话跟数据库交流太过频繁,所以还是建议第一种方式。
------解决方案--------------------
table的编辑还要自己实现,建议使用tableviewer,你的操作基本都支持,要好用的多。
和数据库的交互只要你在相应的事件中实现即可。
------解决方案--------------------
使用tableviewer实现很简单的,在contentProvider中加入你的模型object到row的映射,使用labelProvider加入样式。。。
------解决方案--------------------
tableView
VisitClockView:
- Java code
public class VisitClockView extends ViewPart {
private TableViewer tableViewer;
private Shell shell;
private Action reserveAction,rebesparkAction,clockAction,outAction,editAction,refreshAction,rightAction,deleteAction;
public static final int COMPANYNAME = 0;
public static final int VISITORNAME = 1;
public static final int VISITORCOUNT = 2;
public static final int BOOKTIME = 3;
public static final int NEEDTOSEE = 4;
public static final int VISITISSUE = 5;
public static final int BOOKBY = 6;
public static final int BOOKINGTIME = 7;
public static final int SHOWUPTIME = 8;
public static final int DEPOSITIDTYPE = 9;
public static final String ID = "com.dsrcom.ecq.dsreli_client.brucevisitmanager.views.VisitClockView"; //$NON-NLS-1$
/**
* Create contents of the view part
* @param parent
*/
@Override
public void createPartControl(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
container.setLayout(new FillLayout());
tableViewer = new TableViewer(container,SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION);
/**
* 通过TableViewer中的Table对其布局
*/
Table table = tableViewer.getTable();
table.setHeaderVisible(true); //显示表头
table.setLinesVisible(true); //显示表格线
TableLayout tLayout = new TableLayout();
table.setLayout(tLayout);
/**
* 建立TableViewer中的列
*/
tLayout.addColumnData(new ColumnWeightData(40));
TableColumn col0 = new TableColumn(table,SWT.NONE);
tableViewer.setSorter(new MyTableSort());
col0.setText("公司名称");
col0.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
((MyTableSort) tableViewer.getSorter()).doSort(COMPANYNAME);
tableViewer.refresh();
}
});
tLayout.addColumnData(new ColumnWeightData(40));
TableColumn col1 = new TableColumn(table,SWT.NONE);
col1.setText("访客");
col1.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
((MyTableSort) tableViewer.getSorter()).doSort(VISITORNAME);
tableViewer.refresh();
}
});
tLayout.addColumnData(new ColumnWeightData(20));
TableColumn col2 = new TableColumn(table,SWT.NONE);
col2.setText("来访人数");
col2.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
((MyTableSort) tableViewer.getSorter()).doSort(VISITORCOUNT);