`
visionary_2006
  • 浏览: 130514 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

工具栏图片资源的管理

    博客分类:
  • RCP
阅读更多
如果软件开发界面中的工具栏中只有一两个图片,这种直接创建图片对象然后释放的办法是可行的,但当图片增多时也要一个一个地创建和释放吗?可想而知,代码将变得复杂,所以有必要将图片的管理集中到一起,进行统一的管理.

main方法:
package sxjm;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;

import swtDemo.ImageFactory;

public class ToolBarSample ...{
    
public static void main(String args[])
    
...{
        Display d 
= new Display();
        Shell s 
= new Shell(d);
        s.setLayout(
new GridLayout());
        Composite tool  
=  new Composite(s,SWT.NONE);
        tool.setLayoutData(
new GridData(SWT.LEFT,SWT.TOP,true,false));
        ToolBar toolBar 
= new ToolBar(tool,SWT.NONE);
        ToolItem saveItem 
= new ToolItem(toolBar,SWT.PUSH);
        saveItem.setImage(ImageFactory.loadImage(d,ImageFactory.SAVE_EDIT));
        saveItem.setText(
"save");
        toolBar.pack();
        s.setSize(
new Point(200,200));
        s.open();
        
while(!s.isDisposed())
        
...{
            
if(!d.readAndDispatch())
            
...{
                d.sleep();
            }

        }

        ImageFactory.dispose();
        d.dispose();
        
    }

}


下面是ImageFactory类
package swtDemo;
import java.util.Enumeration;
import java.util.Hashtable;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.widgets.*;
public class ImageFactory ...{
    
private ImageFactory()...{}
        
//配置图片的绝对路径
        public static  final String REAL_PATH = "E:\workspace\icons\";
        
//一些图片名称的常量
        public static final String DELETE_EDIT="delete_edit.jpg";
        
public static final String SAVE_EDIT="save_edit.jpg";
        
public static final String COPY_EDIT="copy_edit.jpg";
        
public static final String PRINT_EDIT="print_edit.jpg";
        
//..........
        
        
private static  Hashtable htImage = new Hashtable();
        
        
public static Image loadImage(Display display , String imageName)
        
...{
            Image image 
= (Image)htImage.get(imageName.toUpperCase());
            
if(image==null)
            
...{
                image 
= new Image(display,REAL_PATH+imageName);
                htImage.put(imageName.toUpperCase(),image);
            }

            
return image;
        }

        
public static void dispose()
        
...{
            Enumeration e 
= htImage.elements();
            
while(e.hasMoreElements())
            
...{
                Image image 
= (Image)e.nextElement();
                
if(!image.isDisposed())
                
...{
                    image.dispose();
                }

            }

        }

}


如果显示不出,检查图片地址对否

下面这个示例创建了一个数字的哈希表。
//它将数字的名称用作键:

Hashtable numbers 
= new Hashtable();
numbers.put(
"one"new Integer(1));
 numbers.put(
"two"new Integer(2));
numbers.put(
"three"new Integer(3));

//要检索一个数字,可以使用以下代码:
Integer n = (Integer)numbers.get("two");
 
if (n != null...{
         System.out.println(
"two = " + n);
 }


value.put(K key, V value)
将指定 key 映射到此哈希表中的指定
get(Object key)
返回此哈希表中指定键所映射到的值。

//实现 Enumeration 接口的对象,它生成一系列元素,一次生成一个。连续调用 nextElement 方法将返回一系列的连续元素。 

//例如,要输出向量 v 的所有元素,可使用以下方法: 

     
for (Enumeration e = v.elements() ; e.hasMoreElements() ;) ...{
         System.
out.println(e.nextElement());
     }

//这些方法主要通过向量的元素、哈希表的键以及哈希表中的值进行枚举。枚举也用于将输入流指定到 SequenceInputStream 中。 
hasMoreElements()
测试此枚举是否包含更多的元素。
nextElement()
如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。
分享到:
评论

相关推荐

    MFC CToolBar工具栏自定义图片及文字

    在提供的压缩包文件中,"工具栏图片素材及代码.rar"包含了这些必要的元素,用户可以直接应用于自己的项目。 1. **创建和初始化工具栏** 在MFC应用程序中,通常在`CWinApp`的`InitInstance`方法中创建并初始化`...

    工具栏图片

    在软件开发领域,尤其是涉及到图形用户界面(GUI)的设计时,工具栏图标是不可或缺的元素。工具栏图标通常被用于C#这样的编程语言创建的窗口应用程序中,它们为用户提供直观的视觉指示,使得用户能够迅速识别并执行...

    工具栏图片图标编辑器

    "工具栏图片图标编辑器"是一款专为设计和编辑这些图标而开发的专业软件。通过这款编辑器,用户能够创建、修改和优化工具栏上的图标,提升应用程序的整体视觉效果和操作便捷性。 图标设计的基本知识包括以下几个方面...

    office 2003工具栏全部图标

    标题中的“Office 2003工具栏全部图标”指的是微软Office 2003软件套件中所有工具栏上使用的图标集合。这些图标是用户界面的重要组成部分,用于表示各种功能和操作,使得用户能够直观地理解并执行相应任务。在编程或...

    文本文件工具栏小图标

    对于程序员来说,了解如何在代码中引用和显示这些图标也是必要的,这可能涉及到资源管理、UI库或框架的使用。 总的来说,"文本文件工具栏小图标"是一个关于用户界面设计、图标制作和软件开发的知识点,它涵盖了视觉...

    带图片按钮的C#工具栏窗体源码

    - 图片资源管理:图片可以作为嵌入资源加入到项目中,也可以通过`Image.FromFile()`加载本地文件。嵌入资源有助于保持应用程序的独立性,避免依赖外部文件。 - 绑定事件:设置按钮的`Click`事件,编写处理用户点击...

    图标工具栏rocketsrock

    RocketDock 提供了一个动态的图标工具栏,让你能够快速访问最常用的程序、文件和文件夹,从而让电脑使用更加便捷高效。这个“rocketsrock”版本可能是RocketDock的一个特定主题或增强版,旨在为用户提供更加个性化和...

    动态工具栏

    在IT行业中,动态工具栏是一...通过合理的布局设计、图片资源管理、事件监听及提示功能实现,我们可以创建出既美观又实用的动态工具栏。在具体实践中,可以根据项目的特性和需求进行适当的调整和优化,以达到最佳效果。

    带背景的工具栏

    这里假设`MyBackgroundImage`是已加载到资源管理器的图片。 4. **添加工具栏按钮和其他元素**: 可以像使用普通`ToolStrip`一样,在自定义的`BackgroundToolStrip`上添加按钮、下拉菜单等元素。这些元素会覆盖在...

    仿QQ,outlook工具栏控件

    3. **图标资源管理**:为工具栏上的按钮提供合适的图标,这可能需要掌握图片资源的导入和管理。 4. **事件处理**:编写代码来响应用户与工具栏控件的交互,例如点击按钮时执行相应的函数或方法。 5. **自定义样式...

    彩色工具栏 可以将真彩色图片加载到工具栏上面

    5. 资源管理:加载和卸载图像资源,确保程序运行的效率和稳定性。 在提供的压缩包文件"SINGLEToolbar"中,可能包含了实现上述功能的源代码、资源文件以及示例图片。通过学习和分析这些代码,开发者可以了解如何在...

    关于VS2008工具栏换肤及多尺寸风格处理类库程序代码

    换肤指的是改变工具栏的外观,包括颜色、样式、背景图片等,从而提升应用的视觉吸引力和用户体验。在VS2008中,我们可以利用.NET Framework提供的控件和自定义绘制技术来实现这一功能。 要实现工具栏换肤,我们需要...

    常用MFC工具栏应用图标

    2. 资源管理:在MFC应用中,图标通常作为资源存储在项目文件中。开发者需要使用Visual Studio的资源编辑器来添加、编辑和管理这些资源。每个图标都有一个唯一的ID,以便在代码中引用。 3. 添加到工具栏:在MFC中,...

    C#winfrom开发的浮工具栏

    9. **资源管理**:图标和其他视觉元素是工具栏的重要组成部分。C# Winform支持资源管理,允许开发者在代码中引用和使用图片、字体等资源。 10. **调试与测试**:在开发过程中,调试和测试是必不可少的环节。Visual ...

    VC++ 文字图文工具栏菜单 源代码

    2. **图文结合**:在工具栏按钮上结合文字和图片,可以提供更直观的用户反馈。这通常通过定义按钮的BITMAP资源和使用CBitmapButton类实现,或者通过设置CToolTipCtrl类的提示信息来增强可视化效果。 3. **自定义...

    vc_toolbar.rar_VC TOOB_vc Toolbar Backcol_vc toolbar_工具栏_工具栏 对话框

    2. 在资源视图(Resource View)中,找到并双击`ToolBar`资源,打开工具栏编辑器。 3. 在编辑器中,你可以添加按钮,设置它们的ID、图片、文字和状态(如禁用或启用)。 **定制工具栏外观**: - **背景色(Backcol...

    32位图标图片文件工具栏使用

    本主题聚焦于"32位图标图片文件工具栏使用",主要涉及VB(Visual Basic)编程环境下如何有效地使用和管理32位图标资源,以及这些图标在工具栏中的应用。 首先,我们要理解32位图标与16位图标的差异。32位图标支持更...

    VC在对话框中加入工具栏

    3. **命名工具栏**:为了方便管理,建议将这个工具栏命名为`IDC_TOOLBAR1`。 #### 步骤二:在对话框类中声明工具栏变量 1. **声明成员变量**:在对话框类中声明一个`CToolBar`类型的成员变量,例如: ```cpp ...

    ToolBar工具栏制作软件

    对于.NET框架下的开发,可能是嵌入到资源管理器中的图像和代码段。对于其他平台,如Java或Qt,可能会生成不同的集成方式。 总之,"ToolBar工具栏制作软件"是一个方便快捷的工具,可以帮助开发者快速创建自定义的...

    Office工具栏图标(超全)

    总的来说,这份"Office工具栏图标(超全)"的资源是学习和熟悉Office操作的强大辅助工具,无论是新手还是经验丰富的用户,都能从中受益。通过研究这些图标,我们可以更深入地理解Office的每一个功能,从而更加高效地...

Global site tag (gtag.js) - Google Analytics