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();
}
//



}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值