SWT - Table的使用

来源:互联网 发布:剑雨江湖法器晋级数据 编辑:程序博客网 时间:2024/04/24 13:09

创建一个Table的步骤如下:

1。 实例化Table,生成一张空表

2。 实例化TableColumn,添加列

3。 实例化TableItem,添加行

package org.vhow.swt.table;import org.eclipse.swt.SWT;import org.eclipse.swt.layout.FillLayout;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Shell;import org.eclipse.swt.widgets.Table;import org.eclipse.swt.widgets.TableColumn;import org.eclipse.swt.widgets.TableItem;public class SimpleTable{    private static int COLUMNS_CNT = 3;    private static int ROWS_CNT = 3;        public static void main(String[] args)    {        Display display = new Display();        Shell shell = new Shell(display);        shell.setLayout(new FillLayout());        shell.setSize(300, 400);                // ------------- core snippet start...                // step1: create a Table object        Table table = new Table(shell, SWT.None);        //        table.setHeaderVisible(true);//        table.setLinesVisible(true);                 // step2: add columns        for (int i = 0; i < COLUMNS_CNT; i++)        {            new TableColumn(table, SWT.CENTER).setText("TableColumn" + (i + 1));            table.getColumn(i).pack();        }                TableItem item = null;                // step3: add rows        for (int row = 0; row < ROWS_CNT; row++)        {            item = new TableItem(table, SWT.NONE);            for (int col = 0; col < COLUMNS_CNT; col++)            {                item.setText(col, "TableItem-" + (row + 1) + "-" + (col + 1));            }        }                // ------------- core snippet end.                shell.pack();        shell.open();                while (!shell.isDisposed())        {            if (!display.readAndDispatch())            {                display.sleep();            }        }        shell.dispose();    }}
运行以上代码,效果如下:

很多时候我们还需要监听end-user的选择:

// add listenertable.addMouseListener(new MouseListener(){@Overridepublic void mouseUp(MouseEvent e) {}@Overridepublic void mouseDown(MouseEvent e){MessageDialog.openInformation(shell, "Message",table.getItem(table.getSelectionIndex()).getText());}@Overridepublic void mouseDoubleClick(MouseEvent e) {}});
另外,我们还可以暴露接口,让用户来添加和删除表中数据:

delButton.addListener(SWT.MouseUp, new Listener(){@Overridepublic void handleEvent(Event event){int selectionIndex = table.getSelectionIndex();if (selectionIndex != -1){table.getItem(selectionIndex).dispose();}}});addButton.addListener(SWT.MouseUp, new Listener(){@Overridepublic void handleEvent(Event event){new TableItem(table, SWT.NONE);}});
原创粉丝点击