程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 用反射實現SWT裡TableViewer的ITableLabelProvider接口

用反射實現SWT裡TableViewer的ITableLabelProvider接口

編輯:JAVA編程入門知識

  

import java.lang.reflect.Field;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.swt.graphics.Image;

  

/**
 * @author house
  *
 * TODO 要更改此生成的類型注釋的模板,請轉至
 * 窗口 - 首選項 - Java - 代碼樣式 - 代碼模板
 */
public class TableViewerLabelProvider implements ITableLabelProvider {
/* (非 Javadoc)
  * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
  */
 public Image getColumnImage(Object element, int columnIndex) {
  // TODO 自動生成方法存根
  return null;
 }
/* (非 Javadoc)
  * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
  */
 public String getColumnText(Object element, int columnIndex) {
  // TODO 自動生成方法存根
 
  Class pe = null;
   pe=element.getClass();
  Field[] field=pe.getFields();
   try {
   return field[columnIndex].get(element).toString();
  } catch (IllegalArgumentException e1) {
   // TODO 自動生成 catch 塊
   e1.printStackTrace();
  } catch (IllegalAccessException e1) {
   // TODO 自動生成 catch 塊
   e1.printStackTrace();
  }
 
   
// if(columnIndex==0){return p.getId().toString();}
// if(columnIndex==1){return p.getName();}
// if(columnIndex==2){return p.getSex()? "man":"woman";}
// if(columnIndex==3){return p.getDate().toString();}
 return "";
 
 }

  

/* (非 Javadoc)
  * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
  */
 public void addListener(ILabelProviderListener listener) {
  // TODO 自動生成方法存根
 
 }
/* (非 Javadoc)
  * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
  */
 public void dispose() {
  // TODO 自動生成方法存根
 
 }

  

/* (非 Javadoc)
  * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
  */
 public boolean isLabelProperty(Object element, String property) {
  // TODO 自動生成方法存根
  return false;
 }

  

/* (非 Javadoc)
  * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
  */
 public void removeListener(ILabelProviderListener listener) {
  // TODO 自動生成方法存根
 
 }
}

  用

  

Class pe = null;
   pe=element.getClass();
  Field[] field=pe.getFields();
   return field[columnIndex].get(element).toString();
取代原有的// if(columnIndex==0){return p.getId().toString();}
// if(columnIndex==1){return p.getName();}
// if(columnIndex==2){return p.getSex()? "man":"woman";}
// if(columnIndex==3){return p.getDate().toString();}

  當多個類進行調用時也不須修改此類。但應該注意視圖應包括持久化類的全類字段。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved