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