e.resource 演示应用程序
eJFace 只提供 重要的 org.eclipse.jface.resource 包库。在演示应用程序中,我们将演示如 何使用 ImageRegistry 和 fontRegistry 以高效地管理图像和字体对象。还引入 了 JFaceColors 以帮助管理相应小部件的颜色。此外,我们将展示如何使用命令 小部件以实现 org.eclipse.jface.action 功能。
清单 11 中列出了演示 代码,这段代码将使用注册表把字体、颜色和图像设定到相应的小部件中。我们 还将展示如何构造 eSWT 命令小部件。此外,它只在目标为 eWorkbench 中的应 用程序时才运行。
ImageRegistry 用于存储和装入不同的图像。使用 put() 和 get() 方法,您可以轻松地把名称分配给图像和管理许多图像。 FontRegistry 类似于 ImageRegistry 并用于存储和装入不同的 fontData。使用 put 和 get 方法,用户可以高效地管理字体。JFaceResources 可用于在整个程 序中管理 ImageRegistry 和 FontRegistry。
JFaceColors 可以把特定颜 色动态指派给小部件的前景和背景。StringConverter 将提供 Java 字符串处理 功能。在此演示应用程序中,我们将使用它把字符串对象分割为 StringArray。
命令小部件是一个有用的 eSWT API。命令仅在附带的小部件获得焦点时 显示。在本样例中,RecoverCommand 附带了合成对象。RecoverCommand 在合成 对象获得焦点时显示。否则,RecoverCommand 将消失。我们将向 RecoverCommand 中添加 SelectionListener。当 RecoverCommand 被选中时,将 调用 widgetSelected。
用eJFace开发嵌入式应用程序(12)
时间:2011-08-27 IBM Sam Lo
下面是设备上的资源演示样例。
清单 11. 资源样例代码
//ImageRegistry demo
ImageRegistry ir = new ImageRegistry();
ir.put("img1",new Image(display,getClass ().getResourceAsStream("/icons/ibm1.png")));
ir.put("img2",new Image(display,getClass().getResourceAsStream("/icons/ibm2.png")));
Label Imagelabel = new Label (composite, SWT.LEFT);
Imagelabel.setImage(ir.get("img1"));
//FontRegistry demo
FontRegistry fr = new FontRegistry(composite.getDisplay ());
FontData[] fd = new FontData[2];
fd[0]= new FontData("Tacoma",20, SWT.NORMAL);
fd[1]= new FontData("Times New Roman",12, SWT.NORMAL);
fr.put("SysFont", fd);
Label Fontlabel = new Label (composite, SWT.LEFT);
Fontlabel.setText("FontRegistry");
Font normalfont = new Font(composite.getDisplay(),fr.getFontData("SysFont")[0]);
Fontlabel.setFont(normalfont);
JFaceResources.setFontRegistry (fr);
Font font = new Font(display, JFaceResources.getFontRegistry().getFontData
("SysFont")[1]);
//JFaceColors demo
Label JFaceColorslabel = new Label (composite, SWT.LEFT);
JFaceColorslabel.setText ("JFaceColors");
JFaceColors.setColors(JFaceColorslabel, composite.getDisplay().getSystemColor
(SWT.COLOR_DARK_YELLOW), composite.getDisplay().getSystemColor (SWT.COLOR_BLUE));
String[] stringArray = StringConverter.asArray("eJface Developer Works");
Command RecoverCommand = new Command(composite, Command.OK, 0);
RecoverCommand.setText("Default Setting");
RecoverCommand.addSelectionListener(new SelectionListener()
|