- 浏览: 192022 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
LXX516:
LXX516 写道你好,运行时出现如下问题:E/Trace(1 ...
PC客户端与Android实现图片传送 -
LXX516:
你好,运行时出现如下问题:E/Trace(15019): er ...
PC客户端与Android实现图片传送 -
huzhenyu:
希望各位大顶起,支持国产免费软件
公式编辑器MathMarkEdit1.0发布 -
zhangyou1010:
默认是8000的端口,如果用sh catalina.sh jp ...
使用eclipse远程调试部署在tomcat上的应用程序 -
zhangyou1010:
有时间,也要玩玩QT,哈哈。
Qt Grid布局
查看器的框架构成:
* 模型和元素:存储着要显示在控件中的数据模型(由开发者编写)
* 内容提供者和标签提供者:负责将数据模型转化成可显示的图片和文字(由开发者编写)
* 控件:显示内容
* 查看器:负责协调上面各部分的工作
============Demo============
* 模型和元素:存储着要显示在控件中的数据模型(由开发者编写)
* 内容提供者和标签提供者:负责将数据模型转化成可显示的图片和文字(由开发者编写)
* 控件:显示内容
* 查看器:负责协调上面各部分的工作
============Demo============
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; } }
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 firePropertyChange(PropertyChangeEvent evt) { delegate.firePropertyChange(evt); } 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 Object[] elements() { return content.toArray(); } }
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).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) {} }
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()); } }
import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ListViewer; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.StructuredSelection; 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(); final 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()); final 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","王五")); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { input.add(new User("4","hzy")); } }); viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { System.out.println(((User)((StructuredSelection)event.getSelection()).getFirstElement()).getName()); } }); while (!shell.isDisposed()) if (!display.readAndDispatch()) display.sleep(); } }
发表评论
-
解决Android Manager不能更新问题
2012-10-14 15:56 1038估计这又是伟大GFW的功劳,我们只需要配置一下hosts文件, ... -
Eclipse中Action创建的两种方式
2011-04-25 11:03 6961在Eclipse里,是由actions来描述菜单及工具栏的可以 ... -
改变swt中table选中行的颜色
2011-03-07 16:17 6330import org.eclipse.swt.*; impo ... -
menu显示在特定视图中
2010-08-17 10:41 993<visibleWhen checkEnabled=&q ... -
rcp中获取bundle中资源文件的两种方法
2010-07-15 12:53 1864Bundle bundle = Platform.getBun ... -
去掉eclipse上的菜单
2010-07-12 13:08 1153WorkbenchWindow window = (Workb ... -
eclipse rcp显示/隐藏视图
2010-07-08 16:45 2299/** * 显示视图 * @param id 视图ID ... -
RCP 视图最大化
2010-07-08 16:42 1559findLeftViewStack(CurrentDealVi ... -
Riena
2010-07-07 23:41 1069Riena平台将是建立多层C/S企业应用的基础。通过提供一种透 ... -
rcp text combo 仿google检索效果
2010-06-24 13:02 1094http://ncu.dl.sourceforge.net/p ... -
eclipse rcp popup menu
2010-06-17 23:02 2295在做RCP开发中遇到个问题,搞了大半天。代码贴出来: view ... -
分享两个不错的基于RCP的开源项目
2010-06-08 16:29 1918http://sourceforge.net/projects ... -
eclipse jdt初探
2010-06-03 23:30 1316最近打算了解下jdt,以便以后做些代码辅助工具 下面记一些代码 ... -
RCP中实现截屏
2010-06-02 22:53 970http://www.java2s.com/Tutorial/ ... -
SWT中创建一个可以可拖曳的图片且实现滚动条跟随
2010-06-02 22:16 1467/****************************** ... -
怎样基于eclipse做一个进度条
2010-06-01 22:37 2652代码: package rcpmail; import ... -
eclipse3.2版以外3.3,3.4,3.5汉化安装
2010-05-31 20:09 1624很多喜欢eclipse的朋友,比较关心eclipse是不是能汉 ... -
eclipse插件及rcp国际化实现
2010-05-22 11:50 1345方式一: package test; import ja ... -
eclipse实用插件集
2010-05-22 11:21 1780FengShen_Xia 2009-03-05 1 ... -
OSGI 伙伴类加载器
2010-05-16 11:59 1119伙伴类加载器选项 首先为 Hibernate 创建插件。然后 ...
相关推荐
"eclipse反编译查看器插件"就是为此目的设计的,它可以让你在Eclipse环境中直接查看Java字节码的源代码近似表示。 "decompiler-3"标签表明这是一个反编译器的第三个版本,通常意味着更多的改进和增强的性能。反...
在这种情况下,Eclipse IDE提供了查看`.class`源码的功能,但默认并不直接支持反编译。为了解决这个问题,我们可以借助一些第三方工具,例如JAD。本篇文章将详细介绍如何在Eclipse中通过JAD插件查看`.class`源码。 ...
标题提及的“JSON查看器(firefox&eclipse;插件)”是指两款专门针对Firefox浏览器和Eclipse集成开发环境的插件,旨在提升开发人员处理JSON数据的效率。 1. Firefox插件版: 这款插件通常会在Firefox浏览器中提供...
5. **调试器**:虽然VB自身具备调试功能,但如果要实现Eclipse的调试器功能,需要设计复杂的断点管理、变量查看和调用堆栈追踪等。 6. **性能优化**:VB相对于Java在运行效率上可能略逊一筹,因此在实现过程中,...
反编译出的源码会以Eclipse的编辑器形式展示,你可以像浏览普通源码一样进行查找、导航和修改(尽管修改不会影响实际的字节码)。此外,它还支持语法高亮、代码折叠和跳转到定义等常见IDE功能。 值得注意的是,反...
包含jd-gui-windows-1.4.0(class查看器)和jd-eclipse-site-1.0.0-RC2(eclipse插件) 1、jd-gui-windows-1.4.0解压后找到jd-gui.exe,打开即可用 2、jd-eclipse-site-1.0.0-RC2暗装请参阅eclipse插件安装教程
虽然不是专门用于查看源码的插件,但Eclipse的内置调试器提供了强大的源码查看功能。通过断点调试,你可以逐步执行代码并查看每一步的源码。 3. **JD-Eclipse**: JD-Eclipse是一个反编译插件,它可以在Eclipse中...
* 查看器:Eclipse提供了多种查看器,例如项目查看器、资源查看器和任务查看器等,用于显示项目和资源的信息。 四、项目管理 Eclipse提供了强大的项目管理功能,支持多种项目类型和编程语言。 * 项目类型:...
总结来说,Eclipse查看propertise插件是为了增强Eclipse对.properties文件的编辑和管理能力,提供诸如语法高亮、自动完成、多语言本地化管理等功能,以优化开发流程。通过Marketplace安装合适的插件,并熟练运用,能...
android eclipse 查看网页源码最减版。之前这个程序的例子太多代码(http://download.csdn.net/detail/day_moon/9713901),做了一些修改。上传这个例子为了更好学习。
4. **JavaScript Debugging (JSDT Debugger)**:Eclipse的JSDT Debugger允许开发者设置断点、步进执行代码、查看变量值,从而有效调试JavaScript应用。这对于解决复杂问题和优化代码至关重要。 5. **Eclipse ...
这时,Eclipse查看源码插件就显得尤为重要。这些插件能够帮助开发者无缝地浏览和分析第三方库的源代码,提高开发效率。 在Eclipse中查看源码通常需要正确配置JDK和JRE系统路径,确保Eclipse知道在哪里查找源代码。...
"嵌入到eclipse和myeclipse中的class源码查看器"是一个非常实用的工具,它使得开发者能够在IDE内直接查看这些无法直接关联到.java源文件的.class文件的源码,极大地提高了调试和学习效率。 Eclipse和MyEclipse都是...
- **WYSIWYG原则**:Eclipse Forms借鉴了WYSIWYG(What You See Is What You Get)的概念,让用户在最终形式上进行编辑操作,类似于在Web浏览器中查看HTML文档的方式。 #### 三、Eclipse Forms的关键特性 - **组件...
安装完成后,如何使用jd-eclipse查看jar包源码呢? 1. 首先,确保你的项目已经正确导入了需要查看源码的jar包。这通常通过右键点击项目 -> Build Path -> Configure Build Path -> Libraries -> Add JARs 或 Add ...
Eclipse作为一款强大的Java集成开发环境,虽然默认并不支持直接查看`.class`文件,但通过添加特定插件可以实现这一功能。本文将详细介绍如何在Eclipse中查看`.class`文件,特别是使用jadclipse插件及其依赖jad.exe的...
你可以直接在IDE中运行RCP应用,实时查看编辑器的运行效果。此外,Eclipse的插件开发环境还支持插件依赖分析、启动配置管理等功能,方便进行开发和调试。 标签中的"java"表明了我们的编辑器是基于Java语言的,这...
同时,插件通常也提供集成调试器,使得在Eclipse环境中可以直接调试JavaScript代码,查看变量值,设置断点,单步执行等,让调试过程更加直观高效。 最后,插件可能还集成了版本控制工具,如Git,便于团队协作和代码...
属性编辑器是Eclipse RCP中的一个重要组成部分,它允许用户查看和修改对象的属性值。这些对象可以是程序中的数据模型、工作台资源或其他任何具有可配置属性的对象。属性编辑器通常以表单形式展示,每个属性都有一个...
然而,标准的Eclipse可能无法直接查看.java源代码或.class字节码文件,这正是我们需要插件的原因。以下将详细介绍如何利用Eclipse插件来查看和分析这两种类型的文件。 1. **查看.java源代码** 当我们导入一个只...