0 0

用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个答案 按时间排序 按投票排序

0 0

采纳的答案

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

相关推荐

    JAVA SWT Table SWTChart Jdbc 数据 表格 散点图 界面

    使用JDBC驱动,我们可以建立到SQL Server的连接,执行CRUD(创建、读取、更新、删除)操作,获取所需的数据。 5. **界面设计** 在SWT中,我们可以创建一个Shell对象作为应用程序的主窗口,然后在其中添加Table和...

    swt-jdbc-orcal数据库实现酒店管理系统

    主要运用swt绘制界面,orcal数据库对数据进行管理,运用jdbc对数据进行操作,有些功能还运用到多线程技术。主要分为客户预定酒店端和酒店管理人员对客户预定的房间的一个处理和客户资料,房间管理等功能。

    8JDBC数据库技术

    Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同,所以开发...

    SWT中bean与控件的数据绑定

    在SWT中,数据绑定是一种将业务对象(通常称为bean)的属性与UI控件的值进行关联的技术,使得UI的变化能够实时反映到数据模型中,反之亦然。这种双向绑定机制极大地简化了UI与数据模型之间的交互,提高了代码的...

    SWT连接mysql数据库

    初学SWT,自己写的连接mysql数据库的代码,共享一下!

    基于JavaSWT的数据库管理系统

    【基于Java SWT的数据库管理系统】是一个使用Java编程语言开发的桌面应用程序,它利用SWT(Standard Widget Toolkit)库来创建用户界面,同时结合Hibernate ORM框架与数据库进行交互。这个管理系统虽然功能相对简单...

    SWT增删改查

    综上所述,"SWT增删改查"项目涉及了SWT GUI设计、JDBC数据库操作、SQL语句编写、事件驱动编程、数据模型与UI的交互等多个核心知识点。通过学习和实践这样的项目,开发者可以提升在Java环境下构建桌面应用的能力,...

    SWT写的住院管理系统(SQL数据库)

    例如,通过JDBC(Java Database Connectivity)API,开发者可以在SWT的界面中显示从数据库获取的数据,同时也能将用户输入的数据保存到数据库中。这有助于理解数据库操作和GUI编程的实际应用。 总的来说,这个“SWT...

    JAVA SWT学生信息管理系统

    例如,当用户在界面上完成学生信息的修改后,系统会通过JDBC将更新的数据提交到数据库中。 综上所述,JAVA SWT学生信息管理系统结合了Java的面向对象特性、SWT的原生界面交互以及数据库的强大存储能力,提供了一套...

    swt form

    7. **数据操作**:在事件处理函数中,使用JDBC API执行SQL语句,将表单数据保存到数据库。 8. **错误处理**:处理可能出现的异常,如网络问题、数据库错误等。 以上就是关于SWT Form以及可能涉及的JDBC相关知识点的...

    使Excel嵌入到SWT窗口中

    使Excel嵌入到SWT窗口中 知识点一:Eclipse版本和jdk版本的选择 在本例中,我们使用的是Eclipse 3.3.1版本和jdk 5.0版本。Eclipse是一个开源的集成开发环境(IDE),它支持多种编程语言,包括Java、C++、Python等...

    SWT.RAR_SWT

    在开发过程中,使用SWT可以构建出高效、响应迅速且美观的用户界面,同时配合SQL数据库实现数据的存储和检索。通过学习和实践这些资料,开发者可以掌握如何利用SWT和SQL来构建一个完整的信息管理软件,包括数据的增删...

    Java swt 实现的文本框 自动匹配数据 演示以及源代码

    在本项目中,我们关注的是如何使用SWT来实现一个具有自动匹配功能的文本框。这个功能常见于许多应用程序中,如搜索引擎、下拉菜单等,它允许用户在输入时自动显示与输入内容相匹配的建议。 在Java SWT中,我们可以...

    swt做的学生管理系统

    这些功能的实现通常涉及到数据库操作,例如使用SQL语句来插入、删除、更新和查询数据。 在实现过程中,开发者可能使用了JDBC(Java Database Connectivity)来连接数据库,执行SQL命令。JDBC是Java访问数据库的标准...

    在SWING、SWT中嵌入浏览器

    JWebPane是早期Java 6中的一个实验性API,但它在后续版本中被弃用,因此在现代项目中不建议使用。 SWT则是一个更底层的库,它与操作系统更紧密地集成,提供了更好的性能和原生外观。在SWT中,我们可以使用`Browser`...

    SWT中文教程.rar

    本教程将深入讲解SWT的基本概念、组件使用以及实际开发中的应用技巧。以下是对SWT中文教程的详细解读: 1. **SWT介绍** SWT全称为标准小部件工具包,它是Java AWT和Swing之外的一个替代选择。SWT直接与操作系统...

    swt完成的类似于sql自动提示的功能

    - 获取元数据:为了获取表名和列名,需要连接到目标数据库,使用JDBC API获取Schema或Table的元数据信息。 - 异步处理:考虑到数据库查询可能会花费较长时间,建议使用SWT的Display或Job类进行异步处理,避免阻塞...

    SWT combobox 联动菜单

    将MySql数据库的主分类读入combo中,然后通过判断数据库中ID从而得到相应子分类中的数据,然后将数据读入到subcombo Mysql数据库文件: 主分类表:mcc id MainClass 0 一般食品 1 生鲜食品 次分类表: id ...

    IBM GUI库SWT教程

    5. ** SWT与JDBC集成**:结合JDBC,SWT可以构建数据驱动的应用程序,提供数据库查询、编辑和管理的用户界面。 本教程将详细讲解以上概念,并通过实例演示如何使用SWT创建各种类型的用户界面,同时也会介绍如何利用...

    swt-64.rar_64位swt_64的SWT_SWT64_swt.jar 64位_swt64位

    开发者需要64位的Java环境,并将“swt-64.jar”添加到类路径中,以便在他们的应用中使用SWT。通过使用SWT,他们可以创建出既美观又响应迅速的桌面应用,这些应用能够无缝地融入用户的64位Windows环境。

Global site tag (gtag.js) - Google Analytics