一、序言
关于“Java做不好桌面”的争论已经由来已久。虽然Swing和Java2D已经有超 过十年的历史,也有JIDE、JGoodies、TWaver等不少开源Swing组件,但是用 Java做桌面程序仍然不是一件轻松的事。本《Java也惊艳》系列文章,就是想通 过一些简单生动的例子,和大家一起认识Java、探索Swing。其实你只需要多一 点创意、多一点耐心,你的Java程序也可以“惊艳”!本文就带您一起进入Java 的“水晶之恋”。
二、立体水晶效果
受苹果公司的影响,现在立体水晶风格的界面非常流行。Java也可以吗?我 们不妨先尝试一下用Java绘制一个立体水晶风格的按钮到底有多难。一个立体的 水晶按钮应当有一个图标、一个圆角矩形区域、边框以及一些立体反光效果,如 下图:
简单思路如下:先画矩形区域,然后画图标,然后设置clip并画高亮反光区 域,最后画外部边框。
具体实现比较简单,主要代码如下:
Color color = TWaverUtil.getRandomColor(); RoundRectangle2D body = new RoundRectangle2D.Float(x, y, size, size, size / 3, size / 3); //draw body g2d.setColor(color); GradientPaint paint = new GradientPaint(x, y, color.darker(), x, y + size, color.brighter().brighter()); g2d.setPaint(paint); g2d.fill(body); //draw image g2d.setClip(body); Image image = TWaverUtil.getImage("/glass/" + i + ".png"); g2d.drawImage(image, x + (size - image.getWidth(null)) / 2, y + (size - image.getHeight(null)) / 2, null); g2d.setClip(null); //draw highlight. Shape highlightArea = createHighlightShape(x, y, size, body); g2d.setColor(new Color(255, 255, 255, 150)); g2d.fill(highlightArea); //draw outline. g2d.setColor(color.darkGray); g2d.draw(body);
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
, color
, image
, twaver
, body
, javaswing 定位
, size
, javaswing流程监控
, java由来
, 2d画图
立体
,以便于您获取更多的相关知识。