如何在 Java Swing 中创建投影、内发光和外发光?
Posted
技术标签:
【中文标题】如何在 Java Swing 中创建投影、内发光和外发光?【英文标题】:How can I create a drop shadow, inner glow and outer glow in Java Swing? 【发布时间】:2011-03-15 01:04:10 【问题描述】:我正在使用 Graphics2D 界面生成一些图像,有时我希望能够在图像上绘制一些文本并对其应用 Adobe Photoshop 中的效果。
现在要在文本上生成“阴影”,我正在绘制文本两次,一次是原始颜色,一次是黑色,x&y 有轻微的 (1px) 偏移。不幸的是,这过于简单,因为我需要更多地控制阴影(不透明度、大小、散布)。
至于内发光和外发光,我不确定从哪里开始;遮罩/渐变绘制/Alpha 混合?
是否有用于产生这些类型效果的 Java 库?如果不是,您将如何创建这些效果?
【问题讨论】:
【参考方案1】:我强烈推荐这本书Filthy Rich Clients。第 16 章讨论了投影。您也可能对此blog post 感兴趣。第 17 章讨论了发光效应。两者的网站上都有示例代码。这本书的其余部分也很值得一读。读的时候放不下书。书中还解释和演示了许多其他有趣的效果。
如前所述,jhlabs site 也是一个不错的网站。
编辑:
对于图书馆,我会查看 SwingX library 中的 Painters。这里有几个教程:
http://weblogs.java.net/blog/2006/09/20/introducing-painters http://www.curious-creature.org/2006/03/24/swingx-painters-demo/ http://www.jroller.com/gfx/entry/advanced_swingx_painters_demo【讨论】:
【参考方案2】:This site有很多关于滤镜和特效的资料,我想应用的源码也有。
【讨论】:
以上是关于如何在 Java Swing 中创建投影、内发光和外发光?的主要内容,如果未能解决你的问题,请参考以下文章
Java Swing 如何在我的自定义 ColorChooserPanel 中创建颜色样本?
如何在JTable Invisible for Swing Java中创建一个列
在 Java Swing 中创建两个标题(使用 TitledBorder)时 AddDocumentListener 的变量范围