📄 createtable.java
字号:
package test.actions;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.ComboBoxCellEditor;
import org.eclipse.jface.viewers.TableLayout;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
public class CreateTable implements Table_Viewer{
private Table table;
private TableViewer tableViewer;
final public String[] COLUMN_NAMES={"name","value"};
public CreateTable(TableViewer tableViewer){
this.tableViewer=tableViewer;
}
public CreateTable(){
}
public void createMyTable(Composite part) {
tableViewer=new TableViewer(part,SWT.SINGLE|SWT.BORDER|SWT.FULL_SELECTION);
this.table=this.tableViewer.getTable();
this.table.setHeaderVisible(true);
this.table.setLinesVisible(true);
TableLayout tableLayout=new TableLayout();
tableLayout.addColumnData(new ColumnWeightData(10));
new TableColumn(this.table,SWT.NONE).setText("name");
tableLayout.addColumnData(new ColumnWeightData(10));
new TableColumn(this.table,SWT.NONE).setText("value");
this.table.setLayout(tableLayout);
this.tableViewer.setContentProvider(new TestContentProvider());
this.tableViewer.setLabelProvider(new TestLabelProvider());
//must
this.tableViewer.setColumnProperties(this.COLUMN_NAMES);
table.addListener(SWT.MouseDown, tableListener);
}
Listener tableListener=new Listener(){
public void handleEvent(Event event) {
CellEditor[] cellEditor=new CellEditor[tableViewer.getTable().getColumnCount()];
TableItem [] tableValues=table.getItems();
Point pt = new Point(event.x, event.y);
if(pt.x<300&&pt.y<46){
if(pt.y<33){
PropertyEntity pe=(PropertyEntity)tableValues[0].getData();
cellEditor[1]=new TextCellEditor(tableViewer.getTable());
tableViewer.setCellEditors(cellEditor);
tableViewer.setCellModifier(new TableCellMondiier(tableViewer,pt.x,pe.getName()));
return;
}
if(pt.y>=33||pt.y<46){
PropertyEntity pe=(PropertyEntity)tableValues[1].getData();
cellEditor[1]=new TextCellEditor(tableViewer.getTable());
tableViewer.setCellEditors(cellEditor);
tableViewer.setCellModifier(new TableCellMondiier(tableViewer,pt.x,pe.getName()));
return;
}
}
if(pt.x>=300&&pt.y>=46){
PropertyEntity pe=(PropertyEntity)tableValues[2].getData();
cellEditor[1]=new ComboBoxCellEditor(tableViewer.getTable(),COLUMN_NAMES,SWT.READ_ONLY);
tableViewer.setCellEditors(cellEditor);
tableViewer.setCellModifier(new TableCellMondiier(tableViewer,pt.x,pe.getName()));
return;
}
}
};
public Table getTable() {
return table;
}
public TableViewer getTableViewer() {
return tableViewer;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -