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 (Standard Widget Toolkit) 的 Table 控件中实现文本换行的功能。SWT 是一个用于开发基于 Java 的桌面应用程序的工具包,它提供了丰富的用户界面组件来帮助...
在SWT中,Table控件相当于其他GUI库中的数据表格,可以用来展示多行多列的数据。在处理大量数据时,为了提高性能和用户体验,通常会采用分页的方式来显示数据。本文将深入探讨如何使用SWT Table实现分页功能,并基于...
### SWT Table单元格编辑功能详解 在Java图形用户界面(GUI)开发中,SWT(Standard Widget Toolkit)是一个广泛使用的工具包,它提供了丰富的控件集合,用于构建高性能的桌面应用程序。其中,`Table`控件是SWT中最...
在SWT中,我们可以创建一个Shell对象作为应用程序的主窗口,然后在其中添加Table和Chart控件。Table控件可以用来显示数据库中的表格数据,支持排序、筛选等功能;而Chart控件则可以渲染从数据库获取的散点数据。 6...
在SWT中,TableEditor是一个常用的组件,它允许我们在表格(Table)的单元格内放置编辑器,比如文本框、下拉框等,以便用户可以直接在表格中进行编辑。 标题"SWT tableEditor删除后刷新"涉及的问题可能是关于在删除...
在这个场景中,“swt table 自己造个轮子”指的是使用SWT(Standard Widget Toolkit)库来创建一个自定义的表格组件。SWT是Eclipse项目的一部分,它提供了一套原生的GUI组件,用于Java应用程序,提供了与操作系统更...
本文将深入探讨SWT中的Table组件的扩展及其应用,同时参考了博客文章“swt table扩展”。 在SWT中,Table是一个非常重要的组件,用于展示多行多列的数据。它提供了类似电子表格的功能,包括排序、选择、编辑等。在...
在深入探讨“Java SWT Table”这一主题之前,我们先来明确一下SWT(Standard Widget Toolkit)是什么以及它在Java开发中的角色。SWT是Eclipse平台的一部分,它提供了一组用于构建图形用户界面(GUI)的类库。与AWT和...
SWT表格管理类,包括表头排序事件,table宽度自适应事件,隔行颜色事件
【标题】"SWT类库Table" 在Java编程中,特别是涉及到图形用户界面(GUI)开发时,常常会使用到SWT(Standard Widget Toolkit)库。SWT 是一个开源的GUI库,它提供了丰富的控件集,使得开发者可以创建出性能高效且与...
SWT Table是SWT中用于显示表格数据的控件,它支持多列、排序、选择等功能。在分页场景下,用户可以在Table中浏览每一页的数据,并通过导航按钮进行翻页。 分页工具的核心通常包括以下几个部分: 1. **数据模型**:...
使Excel嵌入到SWT窗口中 知识点一:Eclipse版本和jdk版本的选择 在本例中,我们使用的是Eclipse 3.3.1版本和jdk 5.0版本。Eclipse是一个开源的集成开发环境(IDE),它支持多种编程语言,包括Java、C++、Python等...
"基于SWT处理大量数据的表(Table)和树(Tree)" 概述: SWT(Standard Widget Toolkit)是一种基于Java的GUI工具包,提供了丰富的Widget控件和功能强大的API。 在SWT应用程序中处理大量数据的表(Table)和树(Tree)是...
SWT(Standard Widget Toolkit)是Java中用于创建图形用户界面(GUI)的一种开源库,它是Eclipse项目的基础组件。SWT的设计目标是提供一个高效、本地化的GUI工具包,能够充分利用操作系统提供的功能,使得Java应用...
Table table = new Table(parent, SWT.MULTI | SWT.FULL_SELECTION); TableViewer tableViewer = new TableViewer(table); ``` 2. **定义表格列** 使用`TableViewerColumn`来定义表格的列,可以设置列头文本、宽度...
### 可编辑的 SWT Table 实现详解 在 Eclipse SWT(Standard Widget Toolkit)中,`Table` 控件提供了显示数据列表的功能。然而,默认情况下,`Table` 是只读的,不允许用户进行编辑。为了使 `Table` 可编辑,SWT ...
为表列添加排序功能,列适应表格宽度,添加光棒以及各行颜色差效果,背景颜色,隔行换色
GridViewer设计用于显示和编辑结构化数据,可以看作是SWT Table的增强版,提供了更丰富的功能和定制选项。 **3. JFace Data Binding** JFace Data Binding是Eclipse中的一个模块,它简化了Java GUI中模型和视图之间...
KTable是SWT中扩展JFace DataBinding库的一个组件,旨在增强标准的SWT Table控件的功能。它提供了一种更灵活的方式来处理表格数据,支持复杂的表格布局、行编辑、列排序和过滤,使得用户界面更加友好和高效。 2. *...