高级Synth:有了最新的Swing外观,定制UI不在话下 - 编程入门网
到 java.awt.Font 类中的三个参数:
name :字体的名称(例如,Verdana、Arial)。 size :字体大小,以像素为单位。 style :如果不使用这个可选标签,那么将得到常规外观的字体。其他选项 包 括 BOLD 和 ITALIC。您还可以通过在这两个属性之间加一个空格来指定粗体加 斜 体的字体:BOLD ITALIC(这种组合属性的技术对于 Synth XML 文件中的所有属 性都适用)。 最后,通过使用 .* wildcard,将这个式样绑定到应用程序中的每个组件, 而 不是将其绑定到每个 JLabel 和每个JButton。这个通配符告诉 Synth 外观为每 个组件指定一个默认的 white Aharoni 字体。清单 3 展示了用于设置组件字体 和颜色的完整 XML 代码: 清单 3. 更改多个组件的字体和颜色
高级Synth:有了最新的Swing外观,定制UI不在话下(4)时间:2011-09-07 ibm Michael Abernethy使用图像 图 2 中的 textfield 边框不是常规外观的单像素矩形边框。可以使用一个 图 像来创建这些边框。这不是我们所熟悉的概念 —— 图像用在 button 和 label 中已经有些时候了 —— 但您可以想像在哪些地方会出问题。如何知道光标移动 到什么地方,如何显示文本,如何创建不同大小的文本域?这些问题可以通过图 像拉伸(image stretching)的概念来解决。一个图像文件必须描述应用程序中 文本域各个边的长度,因此需要有一种方式来告诉 XML 文件如何适当地拉伸图 像 ,以及如何处理常规的 textfield 活动(carat 和文本控制)。 幸运的是,从早期带皮肤的应用程序起,就有一个方法可用于处理这种类型 的 拉伸。图像必须分成 9 个区域 —— 顶部、右上、右部、右下、底部、左下、 左 部、左上和中间 —— 这些区域是通过 XML 文件中的一个属性来指定的。然后 呈 现程序可以通过一定的方式拉伸图像,以适合指定的空间。图 3 展示了文本域 图 像是如何拉伸的。 图 3. 在 Synth 中图像如何拉伸 图 3 中绿色填充区只会垂直拉伸。也就是说,当文本域比图像高的时候,这 些区域就会变高。当文本域比图像长的时候,那些红色填充区只会水平拉伸。而 黄色填充区则是大小固定的。不管文本域的大小如何,这些区域都会如它们在图 像文件中那样显示。因为这些区域不会拉伸,因此它们应该包含所有画布、特殊 底色、阴影和任何一旦拉伸就会看起来很古怪的东西。最后,中间区域是可选的 。您可以选择画出或者忽略该区域。在我们的例子中,文本域的中间被忽略。此 后,呈现程序使用这个区域来处理文本控制和 carat。也就是说,使用一个图像 文件完全画出文本域。 imagePainter标签提供了在外观中使用图像所需的所有信息。它只需要几个 属性: path :所使用的图像的路径。 sourceInsets :按像素计算的 insets,表示图 3 中绿色区域的宽度和粉红 色区域的高度。它们依次映射到顶部、左部、底部和右部。 method :这也许是最令人费解的属性。它直接映射到 javax.swing.plaf.synth.SynthPainter类中的一个函数。这个类包含大约 100 个函数,所有这些函数都以 paint开始。每个函数映射到在一个 Swing 组件中 某个特定的绘画任务。您只需找到一个合适的函数,然后去掉 paint字符串,并 使随后的首个字母为小写形式,便可以设置该属性。例如, paintTextFieldBorder是 textFieldBorder的属性。呈现程序(renderer |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |