JFace查看器的TableViewer的图解
  sAAkk3Vxfaa8 2023年11月02日 39 0


 

此图能够充分说明TableViewer的工作过程。

写上例子就太棒了。

 

例子:

public class TableViewerExample {
	public static void main(String[] args) {
		Display display = new Display();
		Shell shell = new Shell(display);
		shell.setBounds(100,100,400,200);
		shell.setLayout(new FillLayout());
		
		final TableViewer tv = new TableViewer(shell,SWT.NONE);
		Table t = tv.getTable();
		t.setHeaderVisible(true);
		t.setLinesVisible(true);
		String[] colName = {"First Name","Last Name","Age", "Num Children"};
		int[] colWidth = {80,100,35,100};
		for(int i=0; i<colName.length; i++) {
			TableColumn tc = new TableColumn(t,SWT.NONE);
			tc.setText(colName[i]);
			tc.setWidth(colWidth[i]);
		}
		tv.setLabelProvider(new PersonTableLabelProvider());
		tv.setContentProvider(new ArrayContentProvider());
		tv.setInput(Person.example());
		
		shell.open();
		while(!shell.isDisposed()) {
			if(!display.readAndDispatch())
				display.sleep();
		}
		display.dispose();
	}
}

class Person {
	public String 		firstName 		= "John";
	public String 		lastName		= "Doe";
	public int 		age				= 37;
	public Person[] 	childern		= new Person[0];
	
	public Person(String firstName, String lastName, int age) {
		this.firstName = firstName;
		this.lastName = lastName;
		this.age = age;
	}

	public Person(String firstName, String lastName, int age, Person[] childern) {
		this.firstName = firstName;
		this.lastName = lastName;
		this.age = age;
		this.childern = childern;
	}

	public static Person[] example() {
		return new Person[] {
				new Person("Dan", "Rubel",41,new Person[] {
						new Person("Beth", "Rubel",11),
						new Person("David", "Rubel",6),
				}),
				new Person("Eric", "Clayberg",42,new Person[] {
						new Person("Lauren", "ClayBery",41),
						new Person("Lee", "ClayBery",41),
				}),
				new Person("Mike", "Taylor",41),
		};
	}
	
	public String toString() {
		return firstName +" "+ lastName;
	}
}

class PersonTableLabelProvider extends LabelProvider implements ITableLabelProvider {
	public Image getColumnImage(Object element, int columnIndex) {
		return null;
	}

	public String getColumnText(Object element, int columnIndex) {
		Person person = (Person) element;
		switch(columnIndex) {
		case 0: return person.firstName;
		case 1: return person.lastName;
		case 2: return person.age+"";
		case 3: return person.childern.length+"";
		default: return "unknown"+columnIndex;
		}
	}
}

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: C# EeventHandler传递参数 下一篇: SQL学习心得
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  A32uB2Hhmc6N   2023年12月12日   51   0   0 MySQLMySQLideide
sAAkk3Vxfaa8