如果软件开发界面中的工具栏中只有一两个图片,这种直接创建图片对象然后释放的办法是可行的,但当图片增多时也要一个一个地创建和释放吗?可想而知,代码将变得复杂,所以有必要将图片的管理集中到一起,进行统一的管理.
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()
如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。
分享到:
相关推荐
在提供的压缩包文件中,"工具栏图片素材及代码.rar"包含了这些必要的元素,用户可以直接应用于自己的项目。 1. **创建和初始化工具栏** 在MFC应用程序中,通常在`CWinApp`的`InitInstance`方法中创建并初始化`...
在软件开发领域,尤其是涉及到图形用户界面(GUI)的设计时,工具栏图标是不可或缺的元素。工具栏图标通常被用于C#这样的编程语言创建的窗口应用程序中,它们为用户提供直观的视觉指示,使得用户能够迅速识别并执行...
"工具栏图片图标编辑器"是一款专为设计和编辑这些图标而开发的专业软件。通过这款编辑器,用户能够创建、修改和优化工具栏上的图标,提升应用程序的整体视觉效果和操作便捷性。 图标设计的基本知识包括以下几个方面...
标题中的“Office 2003工具栏全部图标”指的是微软Office 2003软件套件中所有工具栏上使用的图标集合。这些图标是用户界面的重要组成部分,用于表示各种功能和操作,使得用户能够直观地理解并执行相应任务。在编程或...
对于程序员来说,了解如何在代码中引用和显示这些图标也是必要的,这可能涉及到资源管理、UI库或框架的使用。 总的来说,"文本文件工具栏小图标"是一个关于用户界面设计、图标制作和软件开发的知识点,它涵盖了视觉...
- 图片资源管理:图片可以作为嵌入资源加入到项目中,也可以通过`Image.FromFile()`加载本地文件。嵌入资源有助于保持应用程序的独立性,避免依赖外部文件。 - 绑定事件:设置按钮的`Click`事件,编写处理用户点击...
RocketDock 提供了一个动态的图标工具栏,让你能够快速访问最常用的程序、文件和文件夹,从而让电脑使用更加便捷高效。这个“rocketsrock”版本可能是RocketDock的一个特定主题或增强版,旨在为用户提供更加个性化和...
在IT行业中,动态工具栏是一...通过合理的布局设计、图片资源管理、事件监听及提示功能实现,我们可以创建出既美观又实用的动态工具栏。在具体实践中,可以根据项目的特性和需求进行适当的调整和优化,以达到最佳效果。
这里假设`MyBackgroundImage`是已加载到资源管理器的图片。 4. **添加工具栏按钮和其他元素**: 可以像使用普通`ToolStrip`一样,在自定义的`BackgroundToolStrip`上添加按钮、下拉菜单等元素。这些元素会覆盖在...
3. **图标资源管理**:为工具栏上的按钮提供合适的图标,这可能需要掌握图片资源的导入和管理。 4. **事件处理**:编写代码来响应用户与工具栏控件的交互,例如点击按钮时执行相应的函数或方法。 5. **自定义样式...
5. 资源管理:加载和卸载图像资源,确保程序运行的效率和稳定性。 在提供的压缩包文件"SINGLEToolbar"中,可能包含了实现上述功能的源代码、资源文件以及示例图片。通过学习和分析这些代码,开发者可以了解如何在...
换肤指的是改变工具栏的外观,包括颜色、样式、背景图片等,从而提升应用的视觉吸引力和用户体验。在VS2008中,我们可以利用.NET Framework提供的控件和自定义绘制技术来实现这一功能。 要实现工具栏换肤,我们需要...
2. 资源管理:在MFC应用中,图标通常作为资源存储在项目文件中。开发者需要使用Visual Studio的资源编辑器来添加、编辑和管理这些资源。每个图标都有一个唯一的ID,以便在代码中引用。 3. 添加到工具栏:在MFC中,...
9. **资源管理**:图标和其他视觉元素是工具栏的重要组成部分。C# Winform支持资源管理,允许开发者在代码中引用和使用图片、字体等资源。 10. **调试与测试**:在开发过程中,调试和测试是必不可少的环节。Visual ...
2. **图文结合**:在工具栏按钮上结合文字和图片,可以提供更直观的用户反馈。这通常通过定义按钮的BITMAP资源和使用CBitmapButton类实现,或者通过设置CToolTipCtrl类的提示信息来增强可视化效果。 3. **自定义...
2. 在资源视图(Resource View)中,找到并双击`ToolBar`资源,打开工具栏编辑器。 3. 在编辑器中,你可以添加按钮,设置它们的ID、图片、文字和状态(如禁用或启用)。 **定制工具栏外观**: - **背景色(Backcol...
CommandBar 是一个专门为 .NET 开发的美观菜单工具栏组件,它旨在提升应用程序的用户界面体验,提供一种高效且直观的方式来展示和管理功能菜单及工具栏。这个组件可能包含多种特性,例如自定义样式、图标支持、上...
本主题聚焦于"32位图标图片文件工具栏使用",主要涉及VB(Visual Basic)编程环境下如何有效地使用和管理32位图标资源,以及这些图标在工具栏中的应用。 首先,我们要理解32位图标与16位图标的差异。32位图标支持更...
3. **命名工具栏**:为了方便管理,建议将这个工具栏命名为`IDC_TOOLBAR1`。 #### 步骤二:在对话框类中声明工具栏变量 1. **声明成员变量**:在对话框类中声明一个`CToolBar`类型的成员变量,例如: ```cpp ...
对于.NET框架下的开发,可能是嵌入到资源管理器中的图像和代码段。对于其他平台,如Java或Qt,可能会生成不同的集成方式。 总之,"ToolBar工具栏制作软件"是一个方便快捷的工具,可以帮助开发者快速创建自定义的...