高级Synth:有了最新的Swing外观,定制UI不在话下 - 编程入门网
hPainter类中的方法),该方法继承自 SynthPainter,它将覆盖那些您想要定制绘画方式的特定函数。在这个例子中, 需要定义 paintPanelBackground方法,因为这种设计不能以 Synth XML 格式描 述。
为了使用定制的 painter,或者在 XML 中以任何方式创建一个类,可以使用 <object>标签。<object>标签允许创建和保持用于弥补 Synth 呈 现程序的任何 Java 类。<object>标签带有两个元素: class :将创建的类的全名。 id :用于在 XML 文档中引用这个类实例的 ID 名。 通过使用对象,不仅可以创建 BackgroundPainter类的实例 —— 这 个类将用于绘制背景,而且还可以创建 ColorUIResource类的实例,在这个类中 可以定义背景颜色。想一想:在 BackgroundPainter类中定义背景中使用的颜色 ,这与 Synth 的目标是矛盾的,Synth 的目标是在一个外部 XML 文件中定义一 切,而不是在一个 Java 文件中进行硬编码。 使用定制 painter 的最后一步是告诉 Synth 呈现引擎,是您自己而不是 SynthPainter类来提供函数。在这个例子中,首先在 BackgroundPainter类中定 义 paintPanelBackground函数,并让 SynthPainter类定义剩下的绘画函数。 <painter> 标签让您可以覆盖 SynthPainter 函数。它带有两个元素: method :定制 painter 应该覆盖的方法。从 使用图像一节中您已经得知, 您可以在 javax.swing.plaf.synth.SynthPainter 类中找到这些函数,但是应 该删除每个函数开始部分的 paint字符串(例如,SynthPainter中的 paintPanelBackground在 XML 文件中应该是 panelBackground)。 id:对将覆盖此方法的类的引用。 为了在定制 painter 中使用颜色,必 须将颜色保存在 javax.swing.UIDefaults类中。在清单 7 和清单 8 中可以看 到,将颜色保存在 UIDefaults中十分简单,对于那些接触过 UI 创建的人来说 应该,应该比较熟悉这些内容。在 XML 文件中定义的键将成为 UIManager中的 引用,在 BackgroundPainter的 Java 代码中,可以使用 UIManager来获得颜色 。 清单 7 展示了在例子应用程序中使用定制 painter 的 XML 代码。注意必须 首先定义颜色。 清单 7. 使用定制 painter
高级Synth:有了最新的Swing外观,定制UI不在话下(8)时间:2011-09-07 ibm Michael Abernethy清单 8 展示了例子应用程序的定制绘画类的 Java 代码: 清单 8. 定制绘画的 Java 代码
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |