sdf

package com.junin.viewer.answer;

public class User {

 private String id;

 private String name;
 
 public User(String id, String name) {
  this.id = id;
  this.name = name;
 }

 public String getId() {
  return id;
 }

 public void setId(String id) {
  this.id = id;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

}


--------------------------------------------------------------

package com.junin.viewer.answer;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.util.Vector;

public class ListModel
{

 public static final String ADD_ELEMENT = "addElement";

 public static final String REMOVE_ELEMENT = "removeElement";

 private PropertyChangeSupport delegate;

 private Vector content;

 public ListModel()
 {
  content = new Vector();
  delegate = new PropertyChangeSupport(this);
 }

 public void addPropertyChangeListener(PropertyChangeListener listener)
 {
  delegate.addPropertyChangeListener(listener);
 }

 public void removePropertyChangeListener(PropertyChangeListener listener)
 {
  delegate.removePropertyChangeListener(listener);
 }

 public void add(Object element)
 {
  if (content.add(element))
   firePropertyChange(new PropertyChangeEvent(this, ADD_ELEMENT, null,
     element));
 }

 public void remove(Object element)
 {
  if (content.remove(element))
   firePropertyChange(new PropertyChangeEvent(this, REMOVE_ELEMENT,
     null, element));
 }

 public void firePropertyChange(PropertyChangeEvent evt)
 {
  delegate.firePropertyChange(evt);
 }

 public Object[] elements()
 {
  return content.toArray();
 }
}

----------------------------------

package com.junin.viewer.answer;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.jface.viewers.Viewer;

public class ListContentProvider implements IStructuredContentProvider,
  PropertyChangeListener
{

 private ListViewer viewer;

 private ListModel model;

 public Object[] getElements(Object inputElement)
 {
  return model.elements();
 }

 public void dispose()
 {
 }

 public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
 {
  this.viewer = (ListViewer) viewer;

  if (oldInput instanceof ListModel)
   ((ListModel) oldInput).removePropertyChangeListener(this);

  if (newInput instanceof ListModel)
  {
   this.model = (ListModel) newInput;
   ((ListModel) newInput).addPropertyChangeListener(this);
  }

 }

 public void propertyChange(PropertyChangeEvent evt)
 {
  if (ListModel.ADD_ELEMENT.equals(evt.getPropertyName()))
   viewer.add(evt.getNewValue());
  if (ListModel.REMOVE_ELEMENT.equals(evt.getPropertyName()))
   viewer.remove(evt.getNewValue());
 }
}

--------------------------------------
package com.junin.viewer.answer;

import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.swt.graphics.Image;

public class ListLabelProvider implements ILabelProvider
{

 public Image getImage(Object element)
 {
  return null;
 }

 public String getText(Object element)
 {
  if (element instanceof User)
   return ((User) element).getId() +" : "+ ((User) element).getName();
  return element.toString();
 }

 public boolean isLabelProperty(Object element, String property)
 {
  return false;
 }

 public void dispose()
 {
 }

 public void addListener(ILabelProviderListener listener)
 {
 }

 public void removeListener(ILabelProviderListener listener)
 {
 }
}
--------------------------------------------------------------------

package com.junin.viewer.answer;

import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class UsingListViewer {

 public static void main(String[] args) {
  Display display = Display.getDefault();
  Shell shell = new Shell(display);
  shell.setSize(400, 400);
  shell.setLayout(new FillLayout());

  ListViewer viewer = new ListViewer(shell, SWT.BORDER);

  viewer.setContentProvider(new ListContentProvider());
  viewer.setLabelProvider(new ListLabelProvider());

  ListModel input = new ListModel();
  viewer.setInput(input);
  
  shell.open();
  shell.layout();
  
  input.add(new User("1","张三"));
  input.add(new User("2","李四"));
  input.add(new User("3","王五"));
  input.add(new User("4","胡宁"));


  while (!shell.isDisposed())
   if (!display.readAndDispatch())
    display.sleep();
 }

}
---------------------------------------------------------------------------

org.eclipse.core.commands_3.6.2.v20130123-162658.jar
org.eclipse.equinox.common_3.6.100.v20120522-1841.jar
org.eclipse.jface_3.8.102.v20130123-162658.jar
org.eclipse.swt.win32.win32.x86_3.100.1.v4236b.jar

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在 IT 领域,文档格式转换是常见需求,尤其在处理多种文件类型时。本文将聚焦于利用 Java 技术栈,尤其是 Apache POI 和 iTextPDF 库,实现 doc、xls(涵盖 Excel 2003 及 Excel 2007+)以及 txt、图片等格式文件向 PDF 的转换,并实现在线浏览功能。 先从 Apache POI 说起,它是一个强大的 Java 库,专注于处理 Microsoft Office 格式文件,比如 doc 和 xls。Apache POI 提供了 HSSF 和 XSSF 两个 API,其中 HSSF 用于读写老版本的 BIFF8 格式(Excel 97-2003),XSSF 则针对新的 XML 格式(Excel 2007+)。这两个 API 均具备读取和写入工作表、单元格、公式、样式等功能。读取 Excel 文件时,可通过创建 HSSFWorkbook 或 XSSFWorkbook 对象来打开相应格式的文件,进而遍历工作簿中的每个 Sheet,获取行和列数据。写入 Excel 文件时,创建新的 Workbook 对象,添加 Sheet、Row 和 Cell,即可构建新 Excel 文件。 再看 iTextPDF,它是一个用于生成和修改 PDF 文档的 Java 库,拥有丰富的 API。创建 PDF 文档时,借助 Document 对象,可定义页面尺寸、边距等属性来定制 PDF 外观。添加内容方面,可使用 Paragraph、List、Table 等元素将文本、列表和表格加入 PDF,图片可通过 Image 类加载插入。iTextPDF 支持多种字体和样式,可设置文本颜色、大小、样式等。此外,iTextPDF 的 TextRenderer 类能将 HTML、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值