用Java开发C/S应用(七):swt中使用Table控件查询数据库数据

代码稍微有点多,我只贴createContents()部分的内容:
    protected void createContents() {
        shell 
= new Shell();
        shell.setLayout(
new FormLayout());
        shell.setSize(
787527);
        shell.setText(
"SWT Application");

        
final Composite composite = new Composite(shell, SWT.NONE);
        
final FormData fd_composite = new FormData();
        fd_composite.bottom 
= new FormAttachment(027);
        fd_composite.top 
= new FormAttachment(05);
        fd_composite.right 
= new FormAttachment(041);
        fd_composite.left 
= new FormAttachment(05);
        composite.setLayoutData(fd_composite);
        composite.setLayout(
new FillLayout());

        
final Composite composite_1 = new Composite(composite, SWT.NONE);
        composite_1.setLayout(
new FillLayout());

        
final Button button = new Button(composite_1, SWT.NONE);
        button.addMouseListener(
new MouseAdapter() {
            
public void mouseDown(final MouseEvent e) {
                
try {
                    Class.forName(
"oracle.jdbc.driver.OracleDriver").newInstance(); 
                    Connection conn
= DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","username","password"); 
                    Statement stmt
=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
                    String sql
="select * from tbtestpaper"
                    ResultSet rs
=stmt.executeQuery(sql); 
                    
while(rs.next())
                    {
                        TableItem item 
= new TableItem(table,SWT.NONE);
                        item.setText(
new String[] {rs.getString("FIELD1),rs.getString("FIELD2"),rs.getString("FIELD3)});
                    }
                    rs.close(); 
                    stmt.close(); 
                    conn.close();
                } 
catch (Exception e1) {
                    e1.printStackTrace();
                } 
            }
        });
        button.setText(
"查询");
        
        table 
= new Table(shell, SWT.FULL_SELECTION | SWT.BORDER);
        
final FormData fd_table = new FormData();
        fd_table.right 
= new FormAttachment(100-5);
        fd_table.bottom 
= new FormAttachment(100-5);
        fd_table.top 
= new FormAttachment(032);
        fd_table.left 
= new FormAttachment(05);
        table.setLayoutData(fd_table);
        table.setLinesVisible(
true);
        table.setHeaderVisible(
true);
        table.addListener(SWT.MeasureItem, 
new Listener() {
            
public void handleEvent(Event event) {
                event.height 
= 20;
            }
        });

        
final TableColumn newColumnTableColumn = new TableColumn(table, SWT.NONE);
        newColumnTableColumn.setWidth(
10);
        newColumnTableColumn.setText(
"字段一");

        
final TableColumn newColumnTableColumn_1 = new TableColumn(table, SWT.NONE);
        newColumnTableColumn_1.setWidth(
100);
        newColumnTableColumn_1.setText(
"字段二");

        
final TableColumn newColumnTableColumn_2 = new TableColumn(table, SWT.NONE);
        newColumnTableColumn_2.setWidth(
150);
        newColumnTableColumn_2.setText(
"字段三");
    }

我是拖了一个Table控件,三个Table column控件到窗体上,然后使用代码:
TableItem item = new TableItem(table,SWT.NONE);
                        item.setText(
new String[] {rs.getString("FIELD1),rs.getString("FIELD2"),rs.getString("FIELD3)});
把从数据库中取到的内容填充到Table中去

中间有这么一段代码:
        table.addListener(SWT.MeasureItem, new Listener() {
            
public void handleEvent(Event event) {
                event.height 
= 20;
            }
        });
意思是为Table的数据行设置行高
posted @ 2009-07-20 12:43  魔豆  阅读(3460)  评论(0编辑  收藏  举报