-
用SWT中的TableEidtor输入数据后,如何通过JDBC提交到数据库中5
import org.eclipse.swt.SWT; import org.eclipse.swt.custom.TableEditor; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TableItem; import org.eclipse.swt.widgets.Text; public class TableEditorExample { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); final Table table = new Table(shell, SWT.BORDER | SWT.MULTI); table.setLinesVisible(true); for (int i = 0; i < 3; i++) { TableColumn column = new TableColumn(table, SWT.NONE); column.setWidth(100); } for (int i = 0; i < 3; i++) { TableItem item = new TableItem(table, SWT.NONE); item.setText(new String[] { "" + i, "" + i, "" + i }); } final TableEditor editor = new TableEditor(table); editor.horizontalAlignment = SWT.LEFT; editor.grabHorizontal = true; table.addListener(SWT.MouseDown, new Listener() { public void handleEvent(Event event) { Rectangle clientArea = table.getClientArea(); Point pt = new Point(event.x, event.y); int index = table.getTopIndex(); while (index < table.getItemCount()) { boolean visible = false; final TableItem item = table.getItem(index); for (int i = 0; i < table.getColumnCount(); i++) { Rectangle rect = item.getBounds(i); if (rect.contains(pt)) { final int column = i; final Text text = new Text(table, SWT.NONE); Listener textListener = new Listener() { public void handleEvent(final Event e) { switch (e.type) { case SWT.FocusOut: item.setText(column, text.getText()); text.dispose(); break; case SWT.Traverse: switch (e.detail) { case SWT.TRAVERSE_RETURN: item .setText(column, text .getText()); //FALL THROUGH case SWT.TRAVERSE_ESCAPE: text.dispose(); e.doit = false; } break; } } }; text.addListener(SWT.FocusOut, textListener); text.addListener(SWT.Traverse, textListener); editor.setEditor(text, item, i); text.setText(item.getText(i)); text.selectAll(); text.setFocus(); return; } if (!visible && rect.intersects(clientArea)) { visible = true; } } if (!visible) return; index++; } } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } }
这段代码作用是用来给我的Table上添加文本框给用户输入,是我从网上找到的一段代码,但是现在不知道如何通过JDBC将输入的内容添加到数据库表中(假设有ID,Name,Age三个字段)。谢谢您的回复!2013年5月06日 10:55
1个答案 按时间排序 按投票排序
-
采纳的答案
package test; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.TableEditor; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TableItem; import org.eclipse.swt.widgets.Text; public class TestTableEditor { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); final Table table = new Table(shell, SWT.BORDER | SWT.MULTI); final Button button = new Button(shell, SWT.BORDER | SWT.MULTI); button.setText("Save"); button.addListener(SWT.MouseDown, new Listener() { @Override public void handleEvent(Event arg0) { TableItem[] items = table.getItems(); for(TableItem ti : items) { String id = ti.getText(0); String name = ti.getText(1); String age = ti.getText(2); } } }); table.setLinesVisible(true); for (int i = 0; i < 3; i++) { TableColumn column = new TableColumn(table, SWT.NONE); column.setWidth(100); } for (int i = 0; i < 3; i++) { TableItem item = new TableItem(table, SWT.NONE); item.setText(new String[] { "" + i, "" + i, "" + i }); } final TableEditor editor = new TableEditor(table); editor.horizontalAlignment = SWT.LEFT; editor.grabHorizontal = true; table.addListener(SWT.MouseDown, new Listener() { public void handleEvent(Event event) { Rectangle clientArea = table.getClientArea(); Point pt = new Point(event.x, event.y); int index = table.getTopIndex(); while (index < table.getItemCount()) { boolean visible = false; final TableItem item = table.getItem(index); for (int i = 0; i < table.getColumnCount(); i++) { Rectangle rect = item.getBounds(i); if (rect.contains(pt)) { final int column = i; final Text text = new Text(table, SWT.NONE); Listener textListener = new Listener() { public void handleEvent(final Event e) { switch (e.type) { case SWT.FocusOut: item.setText(column, text.getText()); text.dispose(); break; case SWT.Traverse: switch (e.detail) { case SWT.TRAVERSE_RETURN: item.setText(column, text.getText()); // FALL THROUGH case SWT.TRAVERSE_ESCAPE: text.dispose(); e.doit = false; } break; } } }; text.addListener(SWT.FocusOut, textListener); text.addListener(SWT.Traverse, textListener); editor.setEditor(text, item, i); text.setText(item.getText(i)); text.selectAll(); text.setFocus(); return; } if (!visible && rect.intersects(clientArea)) { visible = true; } } if (!visible) return; index++; } } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } }
你的代码,我加上了button按钮,点击之后,会得到所有table数据,这时候你就可以使用jdbc插入数据库了。2013年5月06日 11:22
相关推荐
主要运用swt绘制界面,orcal数据库对数据进行管理,运用jdbc对数据进行操作,有些功能还运用到多线程技术。主要分为客户预定酒店端和酒店管理人员对客户预定的房间的一个处理和客户资料,房间管理等功能。
Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同,所以开发...
此为基于Java SWT的数据库管理系统,实现的功能有限,并且项目中所需的hibernate相关的包和数据库,SWT相关的包自己下载加载进去就可以运行了,希望各位能够将自己实现的功能加上去!
基于java语言,应用eclipse SWT类库+Jdbc+SqlServer数据库,实现同一界面展示散点图和数据表格展示,满足跨平台、安全等软件应用需求。
初学SWT,自己写的连接mysql数据库的代码,共享一下!
SWT中文教程.rar/////SWT中文教程.rar
使Excel嵌入到SWT窗口中 使用的Eclipse版本:3.3.1 使用的jdk版本:5.0
SWT插件中文教程SWT常用方法SWT插件中文教程SWT常用方法SWT插件中文教程SWT常用方法SWT插件中文教程SWT常用方法SWT插件中文教程SWT常用方法SWT插件中文教程SWT常用方法
多数情况下,输入的数据被保存在数据库中,或者程序中使用的数据就是直接从数据库中获取的。 大量结构化数据一种主要的输出形式是表格。JFace库的表格查看器则专门管理和维护表格组件中的数据。
非常不错的java swt 中文文档
SWT最大化了操作系统的图形构件API,就是说只要操作系统提供了相应图形的构 件,那么SWT只是简单应用JNI技术调用它们,只有那些操作系统中不提供的构件,SWT才自己去做一个模拟的实现。可以看出SWT的性能上的稳定...
NULL 博文链接:https://542255641.iteye.com/blog/2376642
swt中treeview和tableview实例,有助于理解这两个控件的使用。另外附带html页面。。可读性更强。
SWT配置 SWT配置 SWT配置 SWT配置 SWT配置 SWT配置 SWT配置 SWT配置
Eclipse中SWT插件的安装Eclipse中SWT插件的安装
64位windows操作系统使用的SWT库
rcp开发中用到的swt/Jface组件等 Swt.JFace.in.Action中文版
Eclipse中使用SWT进行界面设计 1. 为什么要使用SWT? 2. SWT应用程序的组成 3. 进行SWT开发前的环境设置
@描述 仿jQuery中的jquery-messager插件 ...@备注:因为喜好jQuery,又觉得swt中的弹出对话框写的麻烦,所以写这一个小东西。本人不是高手,勿骂。如果您也有兴趣,欢迎使用邮件交流。邮箱:haruno2005@163.com