首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

table值兑换

2012-12-24 
table值对换package srcimport org.eclipse.swt.SWTimport org.eclipse.swt.custom.TableEditorimport

table值对换
package src;





import org.eclipse.swt.SWT;

import org.eclipse.swt.custom.TableEditor;

import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;

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 com.sun.java_cup.internal.internal_error;


public class Xm {
int b=0;
int n=0;
String ccString="";
private Table table;
protected Shell shell;

/**
* Launch the application
* @param args
*/
public static void main(String[] args) {
try {
Xm window = new Xm();
window.createContents();
} catch (Exception e) {
e.printStackTrace();
}
}



/**
* Create contents of the window
*/
protected void createContents() {



    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("Text Table Editor");

    shell.setLayout(new FillLayout());

    final Table table = new Table(shell, SWT.SINGLE | SWT.FULL_SELECTION | SWT.HIDE_SELECTION);
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    for (int i = 0; i < 5; i++) {
      TableColumn column = new TableColumn(table, SWT.None);
      column.setText("Column " + (i + 1));
      column.pack();
    }
   
   
    for (int i = 0; i < 30; i++) {
      TableItem item1 = new TableItem(table,0);
      item1.setText(new String[]{"","Hatton"+(i+100)," ","44"+i,"第"+i+"组"});

              TableEditor editor = null;
              TableEditor editor1 = null;
                  //添加check box
                  editor = new TableEditor (table);
                  editor1 = new TableEditor (table);
              final Button check = new Button(table, SWT.None);
              //check.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT));
              final Button check1 = new Button(table, SWT.RADIO);
                  //check.setSelection(true);
              //check.setFocus();
              //check.isFocusControl();
              check.setText("匹配");
              check.setData(i);
                  //check.setSelection(false);
              check1.setText("选择");
              check1.setData(i);
              check1.pack();
              check.pack();
              editor.minimumWidth = check.getSize ().x;
              editor.horizontalAlignment = SWT.CENTER;
              editor1.minimumWidth = check.getSize ().x;
              editor1.horizontalAlignment = SWT.CENTER;
              editor.setEditor(check, item1, 0);
              editor1.setEditor(check1, item1, 2);
              check.addSelectionListener(new SelectionAdapter() {

                  public void widgetSelected(SelectionEvent e) {

                       // getSelection()方法用于获得checkbox的选择状态

                  String status1 = check.getSelection() ? "selected"

                                 : "not selected";
                  String string=table.getItem((Integer)check.getData()).getText(3);
                  table.getItem((Integer)check.getData()).setText(3, ccString);
                  table.getItem(n).setText(3, string);
                  ccString=string;
                       System.out.println("checkbox: " + check.getData());

                      //table.//
                       System.out.println("table.getItem(4).getText(0)="+table.getItem(3).getText(1));

                   }

              });
              check1.addSelectionListener(new SelectionAdapter() {

                  public void widgetSelected(SelectionEvent e) {

                       // getSelection()方法用于获得checkbox的选择状态

                  String status1 = check.getSelection() ? "selected"

                                 : "not selected";

                  n=(Integer)check1.getData();
                  ccString=table.getItem(n).getText(3);

                       System.out.println("checkboxn: " + check1.getData());

                      //table.//
                       System.out.println("table.getItem(4).getText(0)="+table.getItem(3).getText(1));

                   }

              });
    }
   
    table.addListener(SWT.MeasureItem, new Listener() {    //向表格增加一个SWT.MeasureItem监听器,每当需要单元内容的大小的时候就会被调用。
        public void handleEvent(Event event) {
           event.width = table.getGridLineWidth();    //设置宽度
            event.height = (int) Math.floor(event.gc.getFontMetrics().getHeight() * 1.5);    //设置高度为字体高度的1.5倍
        }});
           //   item1.addListener(SWT.SELECTED, new Listener(){

           //   public void handleEvent(Event event) {
           //   System.out.println(".......");
           //   TableItem[] itemList =table.getItems();
           //    int listHaveChouse = table.getSelectionIndex();
              /*
              你可以通过这个下标来取得选中的行的数据了.例如:取得所选行的第一个列属性
              */
            //  String firstInfo = itemList[0].getText(0);
            //  System.out.println(firstInfo);
            //  }         
            //  });

             // item.addDisposeListener(new org.eclipse.swt.events.DisposeListener(){
             //     public void widgetDisposed(org.eclipse.swt.events.DisposeEvent e) {
                      //editor.dispose();当table刷新后,旧的控件清除掉。否则item remove后控件还会在原位
            //          tax.dispose();
            //          check.dispose();                                               
            //      }
           //   });
    System.out.println("table.getItem(4).getText(0)="+table.getItems()[5].getText(0));
    shell.pack();
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }
    display.dispose();
  }
//



}

热点排行