如何在 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 界面生成一些图像,有时我希望能够在图像上绘制一些文本并对其应用 Adob​​e 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 中创建颜色样本?

如何在 Java Swing 中创建右键单击上下文菜单?

如何在JTable Invisible for Swing Java中创建一个列

是否可以在 C# 2.0 中创建发光效果?

在 Java 中创建自定义 JButton

在 Java Swing 中创建两个标题(使用 TitledBorder)时 AddDocumentListener 的变量范围