`
xiaozhonghua
  • 浏览: 253791 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用Swing制作精美ERP图表

阅读更多

 

十一长假,不知大家出去玩了没。反正上海的世博会依旧是水泄不通,用朋友的话说是“裤子都挤掉了”,不过不用担心,由于人太多,裤子想掉不下来也不容易,“6000万人次”可不是吹的。避开喧嚣,和朋友去了一趟阳澄湖吃大闸蟹,也发现是人满为患:一个小村庄几乎被蜂拥而至的食客洗劫一空,硝烟散尽,满地虾皮蟹骨,一片狼藉;看着数个足球场大的停车场和满眼的卡宴途锐和Q5,不得不感慨现在有钱人可真多,只是不知道开这些车的有多少是程序员呢?这个世界纷纷扰扰,日本扣了又放了咱的渔船船长,俄罗斯访华后直接登上了北方四岛,中国人终于获得了诺贝尔奖,微软似乎要收购Adobe,Oracle似乎要收购ARM,北京大堵车,海南发大水,Lady Gaga要出新专辑…不管咋说,咱程序员还要耐得住寂寞,踏踏实实的把程序先写好,才能距离开着卡宴、吃着大闸蟹、喝着茅台、洗着小桑拿、住着小别墅、听着Lady Gaga距离更进一步。当然,千万不要酒后驾车,撞到官员或城管肯定不太好吧,就算撞到煤老板或国足球员甚至裁判陆俊也是不大好嘛,我的意思是,你不心疼你开的桑塔纳啊?

 

最近ERP项目进入冲刺阶段,彻底改善一下“图表中心”模块的界面美观性已经成了当务之急,老大要求节前必须完成!先看看以前的图表中心界面:

 


这个图表界面的问题是不够美观,灰色调让人感觉很沉闷;数据的呈现也不够精细和直观,本来有很好的数据却不能用很吸引人的方式呈现出来,非常可惜。另外,这个界面方案使用了Layout布局,固定的行、列,当图表矩阵数量多了后,每个图表都被挤的很小,看上去非常难受。

 

再看看改进后的:

 


美观性改善自然不必多说,操作上也丰富了不少。以前的方案使用了Layout布局,固定的行、列,当图表多了后,每个图表都被挤的很小,看上去非常难受;而新的方案使用了固定行列大小以及翻页的方式,点击右下角的箭头可以动画翻页,这样就可以支持无限多的图表矩阵了。此外,鼠标双击每个图表的标题,也可以最大化/恢复每个图表单元格,以便观察图表细节。还可以鼠标直接在每个chart上面用滚轮滚动来进行任意矢量缩放。

 

主要操作罗列如下:

 

  • 双击每个chart标题文字,可以最大化/恢复相应chart;
  • 点击右下角箭头进行图表矩阵动画翻页;
  • 鼠标滚轮滚动每个chart,可以矢量无级缩放,双击后复位;
  • 鼠标拖拽每个chart内容,可以进行平移,双击后复位;
  • 支持鼠标点击、移动等动作;
其中有几个复杂一点的图表需要说明一下。例如这个美国地图的图,其中的地图来自一个xml定义的shape格式文件,其中携带了每个州的数据。当鼠标在地图上滑过,可以动态的显示出每个州的数据大小,例如客户信息、销售额等,这对一个ERP管理软件来说,无疑是非常直观和具有实用价值的:


 
另外,这个饼图的渐变填充也使用了Swing的一些圆心渐变方法,增强了美观性:

 


实际的实现也很简单,用Java2D的渐变填充即可实现:

 

 

                //fill pie.
                float centerY = (float) drawBound.getCenterY();
                Point2D from = new Point2D.Float(0, centerY - radius);
                Point2D end = new Point2D.Float(0, centerY + radius * 1.5f);
                float[] dist = {0.0f, 0.5f, 1.0f};
                Color[] colors = {color.darker().darker(), color, Color.white};
                LinearGradientPaint paint = new LinearGradientPaint(from, end, dist, colors);
                g2d.setColor(color);
                g2d.draw(shape);
                g2d.setPaint(paint);
                g2d.fill(shape);

具体实现可查看附件中的代码(类demo.chart.customized.StylePieChart)。

 

好了,由于没什么高深莫测的技术和技巧,老规矩,有代码共享,直接为大家上代码和可执行文件。我花了十一假期一天时间把项目中的代码剥离了出来,去掉了所有业务部分,仅仅留下chart的组织和实现部分分享大家,仅供参考和相互交流之目的,请勿直接用于其他商业用途。解压附件,直接双击run.bat即可执行。别忘记使用JDK 6。

 

代码和可执行文件下载点击这里

  • 大小: 29.3 KB
  • 大小: 224.5 KB
  • 大小: 108.7 KB
  • 大小: 130.9 KB
分享到:
评论
8 楼 1927105 2010-10-10  
twaver常谈的东西
7 楼 quxiaoyong 2010-10-10  
发现楼主的swing功底确实不错。
6 楼 liangguanhui 2010-10-10  
引用
中国人终于获得了诺贝尔奖

哈哈,小心……
5 楼 java_mike 2010-10-10  
赞。  体验性好。
4 楼 andybrier3 2010-10-09  
xiaozhonghua又出刀了
3 楼 runopen 2010-10-09  
xiaozhonghua你这一刀不够猛,一般
2 楼 JavaRunway 2010-10-09  
漂亮滴很!
1 楼 程序新手 2010-10-09  
此节前是春节否?

相关推荐

    Swing制作的ERP图表

    用swing实现的制作(ERP)报表;很好很简单方便!

    用Swing制作精美的图层叠加图

    这篇博文“用Swing制作精美的图层叠加图”探讨了如何利用Swing来实现这一目标,尤其是在数据可视化和用户交互方面。通过源码分析,我们可以学习到以下关键知识点: 1. **Swing组件基础**:Swing是Java GUI(图形...

    Swing精美界面设计和动画制作教程+实例

    Swing精美界面设计和动画制作教程+实例Swing精美界面设计和动画制作教程+实例Swing精美界面设计和动画制作教程+实例Swing精美界面设计和动画制作教程+实例Swing精美界面设计和动画制作教程+实例Swing精美界面...

    swing制作的精美记事本

    swing制作的精美记事本,界面仿苹果。可以拿去参考和使用

    swing界面的ERP开发框架(ErpFree)

    一套swing做的ERP开发框架,分享出来,供大家学习。

    free (一个swing写的ERP框架) --转载

    NULL 博文链接:https://tw-wangzhengquan.iteye.com/blog/1322983

    用swing制作的简单图书管理系统

    本系统——"用Swing制作的简单图书管理系统"就是基于这一强大的库构建的。下面我们将深入探讨该系统的设计理念、主要功能以及Swing在其中的关键应用。 一、Swing基础与应用 Swing是Java Foundation Classes (JFC)的...

    Swing制作的QQ界面

    在这个“Swing制作的QQ界面”项目中,开发者使用Swing构建了一个类似腾讯QQ的聊天应用界面。 `TestWindow.java`是压缩包中的关键文件,通常它会包含整个应用的主要窗口或主类。这个类可能是程序的入口点,负责初始...

    使用swing制作的向导页面

    本示例中,我们关注的是“使用Swing制作的向导页面”,这是一种常见的用户交互模式,用于引导用户逐步完成复杂任务或提供一系列设置。向导页面通常由多个步骤组成,每个步骤都包含特定的信息输入或选择,用户按顺序...

    用AWT Swing制作的登录注册页面,连接MySQL

    在本项目中,"用AWT Swing制作的登录注册页面,连接MySQL",开发者创建了一个使用这两种技术的简单应用,允许用户进行登录和注册操作,并将数据存储在MySQL数据库中。这为Java初学者提供了了解如何结合使用这些技术...

    精美Swing 折叠菜单

    总的来说,这个“精美Swing 折叠菜单”项目展示了如何使用Java Swing组件和事件处理机制来创建一个模仿Windows XP风格的折叠菜单,同时也展示了自定义绘图和动画效果在GUI设计中的应用。对于学习Java Swing和GUI编程...

    java swing制作的时钟

    在这个场景中,我们讨论的是一个使用Java Swing开发的时钟应用,该应用具备设置时间、显示分针、时针和秒针的功能。 首先,我们需要了解Swing中的主要组件。在创建这个时钟应用时,可能没有直接的"时钟"组件,...

    使用Velocity Swing制作的代码生成工具

    【标题】"使用Velocity Swing制作的代码生成工具"是一个基于Java Swing界面和Velocity模板引擎的实用程序,旨在帮助开发者快速生成符合特定规范的代码。这个工具允许用户自定义模板,以适应不同的编程语言和框架,...

    Java Swing制作多行滚动歌词显示控件.doc

    Java Swing 制作多行滚动歌词显示控件 ...Java Swing 制作多行滚动歌词显示控件需要使用到多种技术和组件,包括领域模型、Java Swing 组件、布局管理、事件处理、图形用户界面设计、多线程编程和调试技术等。

    erp swing 开发的图形报表

    swing 开发的图形报表 swing 开发的图形报表 swing 开发的图形报表 swing 开发的图形报表 swing 开发的图形报表

    用swing实现的一个秒表

    这篇博客“用Swing实现的一个秒表”展示了如何利用Swing组件创建一个功能完备的计时器应用,这对于学习Java GUI编程或者需要开发类似工具的开发者来说非常有价值。下面将详细介绍这个项目中的关键知识点。 1. **...

    java swing制作的 万年历.rar

    本源码是使用java swing技术制作的一款 万年历效果,代码中假设了1990年1月1日为星期一,因为本日历中支持显示星期信息,通过计算当前日期到1900年1月1日经过了多少天,计算出当前日期是星期几。可自动计算每个月有...

    Swing做的高仿QQ登陆界面

    Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分,用于构建桌面应用程序。本项目“Swing做的高仿QQ登陆界面”旨在为初学者提供一个学习Swing GUI设计和实现简单...

    Java课程设计基于Javaswing的思维导图制作工具.zip

    Java课程设计基于Javaswing的思维导图制作工具.zipJava课程设计基于Javaswing的思维导图制作工具.zipJava课程设计基于Javaswing的思维导图制作工具.zipJava课程设计基于Javaswing的思维导图制作工具.zipJava课程设计...

Global site tag (gtag.js) - Google Analytics