当前位置: 代码迷 >> Eclipse >> SWT/JFACE 中怎样把数据库中的表显示在table中,该怎么解决
  详细解决方案

SWT/JFACE 中怎样把数据库中的表显示在table中,该怎么解决

热度:165   发布时间:2016-04-23 14:16:17.0
SWT/JFACE 中怎样把数据库中的表显示在table中
最近在用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);
  相关解决方案