`
xiaoshao
  • 浏览: 53771 次
社区版块
存档分类
最新评论

swt table

 
阅读更多
import java.awt.Toolkit;import java.util.ArrayList;import java.util.List;import org.eclipse.jface.action.Action;import org.eclipse.jface.action.MenuManager;import org.eclipse.jface.action.StatusLineManager;import org.eclipse.jface.viewers.CellEditor;import org.eclipse.jface.viewers.ICellModifier;import org.eclipse.jface.viewers.ILabelProviderListener;import org.eclipse.jface.viewers.IStructuredContentProvider;import org.eclipse.jface.viewers.ITableLabelProvider;import org.eclipse.jface.viewers.StructuredSelection;import org.eclipse.jface.viewers.TableViewer;import org.eclipse.jface.viewers.TextCellEditor;import org.eclipse.jface.viewers.Viewer;import org.eclipse.jface.window.ApplicationWindow;import org.eclipse.swt.SWT;import org.eclipse.swt.graphics.Image;import org.eclipse.swt.widgets.Composite;import org.eclipse.swt.widgets.Control;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Item;import org.eclipse.swt.widgets.Menu;import org.eclipse.swt.widgets.Shell;import org.eclipse.swt.widgets.TableColumn;public class MainWindow extends ApplicationWindow{public class Person {private int ID;private String name;private String gender;private String color;public Person() {super();// TODO Auto-generated constructor stub}public Person(int iD, String name, String gender, String color) {super();ID = iD;this.name = name;this.gender = gender;this.color = color;}public int getID() {return ID;}public void setID(int iD) {ID = iD;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}}private TableViewer tableViewer;private List personList;public static final int ID =0;public static final int NAME = 1;public static final int GENDER = 2;public static final int COLOR= 3;public static final String[] COLUMN_NAME={"id","name","sex","color"};public MainWindow() {super(null);// TODO Auto-generated constructor stubinitData();this.addMenuBar();this.addStatusLine();}private void initData() {personList = new ArrayList();personList.add(new Person(1, "name1", "m", "redd"));personList.add(new Person(2, "name2", "f", "red"));personList.add(new Person(3, "name3", "f", "red"));}@Overrideprotected void configureShell(Shell shell) {// TODO Auto-generated method stubsuper.configureShell(shell);//shell.setImage(new Image(shell.getDisplay(), "main_title.jpg"));shell.setText("TableViewer");int screenW = Toolkit.getDefaultToolkit().getScreenSize().width;int screenH = Toolkit.getDefaultToolkit().getScreenSize().height;shell.setSize(500, 300);int shellW = shell.getBounds().width;int shellH = shell.getBounds().height;if(shellW>screenW){shellW=screenW;}if(shellH>screenH){shellH=screenH;}shell.setLocation((screenW-shellW)/2, (screenH-shellH)/2);}@Overrideprotected Control createContents(Composite parent) {tableViewer = new TableViewer(parent,SWT.FULL_SELECTION|SWT.CENTER);for(int i=0;i<COLUMN_NAME.length;i++){TableColumn tableColumn = new TableColumn(tableViewer.getTable(), SWT.LEFT);tableColumn.setText(COLUMN_NAME[i]);tableViewer.getTable().getColumn(i).pack();}tableViewer.getTable().setHeaderVisible(true);tableViewer.getTable().setLinesVisible(true);tableViewer.setContentProvider(new TableContentProvider());tableViewer.setLabelProvider(new TableLableProvider());tableViewer.setInput(personList);createContextMenu();editorTableViewer();return parent;}private void editorTableViewer() {tableViewer.setColumnProperties(COLUMN_NAME);CellEditor[] cellEditors = new CellEditor[4];cellEditors[0] = null;cellEditors[1] = new TextCellEditor(tableViewer.getTable());cellEditors[2] = new TextCellEditor(tableViewer.getTable());cellEditors[3] = new TextCellEditor(tableViewer.getTable());tableViewer.setCellEditors(cellEditors);tableViewer.setCellModifier(new ICellModifier() {@Overridepublic void modify(Object element, String property, Object value) {if(element instanceof Item){element=((Item)element).getData();Person person=(Person)element;if(property.equals(COLUMN_NAME[1])){person.setName((String)value);}else if(property.equals(COLUMN_NAME[2])){person.setGender((String)value);}else if(property.equals(COLUMN_NAME[3])){person.setColor((String)value);}}}public Object getValue(Object element, String property) {Person person =(Person)element;if(property.equals(COLUMN_NAME[1])){return person.getName();}else if(property.equals(COLUMN_NAME[2])){return person.getGender();}else if(property.equals(COLUMN_NAME[3])){return person.getColor();}return null;}public boolean canModify(Object element, String property) {if(property.equals(COLUMN_NAME[0])){return false;}return true;}});}class TableContentProvider implements IStructuredContentProvider{@Overridepublic Object[] getElements(Object inputElement) {// TODO Auto-generated method stubreturn ((List)inputElement).toArray();}@Overridepublic void dispose() {// TODO Auto-generated method stub}@Overridepublic void inputChanged(Viewer arg0, Object arg1, Object arg2) {// TODO Auto-generated method stub}}class TableLableProvider implements ITableLabelProvider{@Overridepublic Image getColumnImage(Object arg0, int arg1) {// TODO Auto-generated method stubreturn null;}@Overridepublic String getColumnText(Object element, int columnIndex) {// TODO Auto-generated method stubPerson person =(Person)element;if(columnIndex == ID){return person.getID()+"";}else if(columnIndex == NAME){return person.getName();}else if(columnIndex == GENDER){return person.getGender();}else if(columnIndex ==COLOR){return person.getColor();}return "";}@Overridepublic void addListener(ILabelProviderListener arg0) {// TODO Auto-generated method stub}@Overridepublic void dispose() {// TODO Auto-generated method stub}@Overridepublic boolean isLabelProperty(Object arg0, String arg1) {// TODO Auto-generated method stubreturn false;}@Overridepublic void removeListener(ILabelProviderListener arg0) {// TODO Auto-generated method stub}}class AddAction extends Action{ public AddAction(){setText("add");}@Overridepublic void run() {Person person = new Person();person.setID(tableViewer.getTable().getItemCount()+1);person.setName("mimi");person.setGender("f");person.setColor("red");tableViewer.add(person);}}class DeleteAction extends Action{public DeleteAction(){setText("delete");}@Overridepublic void run() {StructuredSelection selection = (StructuredSelection)tableViewer.getSelection();Person person=(Person)selection.getFirstElement();getStatusLineManager().setMessage(person.getName()+" "+person.getGender()+" "+person.getColor());tableViewer.remove(person);}}class Refresh extends Action{public Refresh(){setText("refresh");}@Overridepublic void run() {tableViewer.refresh();}}public void createContextMenu(){MenuManager menuBar = new MenuManager();menuBar.add(new AddAction());menuBar.add(new DeleteAction());menuBar.add(new Refresh());Menu menu =menuBar.createContextMenu(getShell());tableViewer.getTable().setMenu(menu);}@Overrideprotected MenuManager createMenuManager() {MenuManager menuBar = new MenuManager();MenuManager editorMenu = new MenuManager("edit");menuBar.add(editorMenu);editorMenu.add(new AddAction());editorMenu.add(new DeleteAction());return menuBar;}@Overrideprotected StatusLineManager getStatusLineManager() {// TODO Auto-generated method stubreturn super.getStatusLineManager();}@Overrideprotected StatusLineManager createStatusLineManager() {StatusLineManager statusLineManager =new StatusLineManager();return statusLineManager;}public static void main(String[] args) {MainWindow main = new MainWindow();main.setBlockOnOpen(true);main.open();Display.getCurrent().dispose();}}
分享到:
评论

相关推荐

    swt table 实现换行

    根据提供的文件信息,可以看出本文主要讨论的是如何在 SWT (Standard Widget Toolkit) 的 Table 控件中实现文本换行的功能。SWT 是一个用于开发基于 Java 的桌面应用程序的工具包,它提供了丰富的用户界面组件来帮助...

    SWT Table分页的工具类

    在SWT中,Table控件相当于其他GUI库中的数据表格,可以用来展示多行多列的数据。在处理大量数据时,为了提高性能和用户体验,通常会采用分页的方式来显示数据。本文将深入探讨如何使用SWT Table实现分页功能,并基于...

    SWT Table单元格编辑功能

    ### SWT Table单元格编辑功能详解 在Java图形用户界面(GUI)开发中,SWT(Standard Widget Toolkit)是一个广泛使用的工具包,它提供了丰富的控件集合,用于构建高性能的桌面应用程序。其中,`Table`控件是SWT中最...

    JAVA SWT Table SWTChart Jdbc 数据 表格 散点图 界面

    在SWT中,我们可以创建一个Shell对象作为应用程序的主窗口,然后在其中添加Table和Chart控件。Table控件可以用来显示数据库中的表格数据,支持排序、筛选等功能;而Chart控件则可以渲染从数据库获取的散点数据。 6...

    SWT tableEditor删除后刷新

    在SWT中,TableEditor是一个常用的组件,它允许我们在表格(Table)的单元格内放置编辑器,比如文本框、下拉框等,以便用户可以直接在表格中进行编辑。 标题"SWT tableEditor删除后刷新"涉及的问题可能是关于在删除...

    swt table 自己造个轮子

    在这个场景中,“swt table 自己造个轮子”指的是使用SWT(Standard Widget Toolkit)库来创建一个自定义的表格组件。SWT是Eclipse项目的一部分,它提供了一套原生的GUI组件,用于Java应用程序,提供了与操作系统更...

    swt table扩展

    本文将深入探讨SWT中的Table组件的扩展及其应用,同时参考了博客文章“swt table扩展”。 在SWT中,Table是一个非常重要的组件,用于展示多行多列的数据。它提供了类似电子表格的功能,包括排序、选择、编辑等。在...

    java swt table

    在深入探讨“Java SWT Table”这一主题之前,我们先来明确一下SWT(Standard Widget Toolkit)是什么以及它在Java开发中的角色。SWT是Eclipse平台的一部分,它提供了一组用于构建图形用户界面(GUI)的类库。与AWT和...

    SWT表格管理类(包括表头排序,隔行颜色,表格宽度自适应)

    SWT表格管理类,包括表头排序事件,table宽度自适应事件,隔行颜色事件

    swt类库Table

    【标题】"SWT类库Table" 在Java编程中,特别是涉及到图形用户界面(GUI)开发时,常常会使用到SWT(Standard Widget Toolkit)库。SWT 是一个开源的GUI库,它提供了丰富的控件集,使得开发者可以创建出性能高效且与...

    SWTUtils分页工具源码.zip

    SWT Table是SWT中用于显示表格数据的控件,它支持多列、排序、选择等功能。在分页场景下,用户可以在Table中浏览每一页的数据,并通过导航按钮进行翻页。 分页工具的核心通常包括以下几个部分: 1. **数据模型**:...

    使Excel嵌入到SWT窗口中

    使Excel嵌入到SWT窗口中 知识点一:Eclipse版本和jdk版本的选择 在本例中,我们使用的是Eclipse 3.3.1版本和jdk 5.0版本。Eclipse是一个开源的集成开发环境(IDE),它支持多种编程语言,包括Java、C++、Python等...

    基于SWT处理大量数据的表(Table)和树(Tree)

    "基于SWT处理大量数据的表(Table)和树(Tree)" 概述: SWT(Standard Widget Toolkit)是一种基于Java的GUI工具包,提供了丰富的Widget控件和功能强大的API。 在SWT应用程序中处理大量数据的表(Table)和树(Tree)是...

    SWT使用例子

    SWT(Standard Widget Toolkit)是Java中用于创建图形用户界面(GUI)的一种开源库,它是Eclipse项目的基础组件。SWT的设计目标是提供一个高效、本地化的GUI工具包,能够充分利用操作系统提供的功能,使得Java应用...

    Swt/Jface tableViewer入门教程三(加入在表格上直接编辑数据)

    Table table = new Table(parent, SWT.MULTI | SWT.FULL_SELECTION); TableViewer tableViewer = new TableViewer(table); ``` 2. **定义表格列** 使用`TableViewerColumn`来定义表格的列,可以设置列头文本、宽度...

    可以编辑的table

    ### 可编辑的 SWT Table 实现详解 在 Eclipse SWT(Standard Widget Toolkit)中,`Table` 控件提供了显示数据列表的功能。然而,默认情况下,`Table` 是只读的,不允许用户进行编辑。为了使 `Table` 可编辑,SWT ...

    swt自适应,隔行换色

    为表列添加排序功能,列适应表格宽度,添加光棒以及各行颜色差效果,背景颜色,隔行换色

    SWT GridViewer_1.0包

    GridViewer设计用于显示和编辑结构化数据,可以看作是SWT Table的增强版,提供了更丰富的功能和定制选项。 **3. JFace Data Binding** JFace Data Binding是Eclipse中的一个模块,它简化了Java GUI中模型和视图之间...

    KTable for SWT 源代码+实例

    KTable是SWT中扩展JFace DataBinding库的一个组件,旨在增强标准的SWT Table控件的功能。它提供了一种更灵活的方式来处理表格数据,支持复杂的表格布局、行编辑、列排序和过滤,使得用户界面更加友好和高效。 2. *...

Global site tag (gtag.js) - Google Analytics