【编程漫谈】用JAVA画多边形

一门语言只要带图形库就可以编程画图了,用JAVA画图有两种方式,一是在内存中画好然后生成图片,就可以看到画图的效果了。另一个就是在窗口界面上直接画,可以实时看到程序的运行效果。刚开始学编程的时候,我加入了一个JAVA编程的BBS,里边有些大神会带着新手学,有一次大神出一道,叫让画一个6边型。

我想这不是很难吧,JAVA的图形库比较容易,有一个Graphics类,这个类在applet或者swing的某些方法中可以得到,Graphics提供画线画点画多边形的一些方法。不过当时我没啥经验,因为没有网络,没有去查完整的Api文档,我学的东西主要来源于书本,我只知道有个画线的方法,于是就通过中学的几何知识,分别计算了6个点的位置,再用线将这个6个点连起来,于是一个6边形就画出来了。

不过,我写的程序被大神批了一通,说我这程序写得不行。第一个我用的applet,没有用swing库,可能是信息闭塞,当时我也知道有swing这玩意,只是当时的IDE太笨重,我没法安装一个jbuilder去创建UI,手写又觉得太麻烦,不像applet只要少量的代码插入到浏览器即可运行。只是applet基于awt库的,样式相较Swing的扁平效果,确实丑了一点。但我觉得,用swing还是awt,目标不是画多边形么,为什么这个成为喷点了。

另一个就是我没有用drawPolygon(int[] xPoints, int[] yPoints, int nPoints)​这个方法,大神觉得我自己去画6条线,是多此一举,他觉得如果可以动态调整顶点数,我这程序就不行了。这一点我认了,确实是自己不知道这个方法,多写了几行代码,但实际上,顶点还是算出来的,我只是多了几行画线的代码,如果之前的需求有提出来,我弄个链表存储顶点,然后通过迭代把线画出来也不是多么困难的事情。

还有一点,就是我的程序仅仅画了一个图。我想应该是这个大神有点完美主义,只是画一个图,但他想要的却是一个完整可发布的应用程序,比如某兄弟,写了个6边形的程序,他上边加了几个控件,可以调节顶点数,半径长度,自适应窗口宽度等等。没办法,我学的程序基本上都是Console下边运行的,参加这个活动,我只是为了证明一下,这种基于UI的程序,我也是可以写的,但人家不认你也没办法。

后来,我一直工作到现在,也没开发过JAVA写的UI程序,如果是窗口程序,用响应更快的本地代码编写不是更好,反正Windows下边,最终都是调用GDI的接口。如果不想用C++,可以用Delphi,VB之类更简单的编程语言来实现。在我学JAVA的时候,.net 也刚刚出来。由于Windows比较普及,我也就以.net开发为主了。winform满足了开发窗口程序的大部分需求。所以用JAVA开发就比较小众了。当然也可能是见识的问题,以前的嵌入设备很多都是用JAVA的,不过那是JSME了,不是咱学习的范畴。

上一篇:java-我如何离线运行此Applet?


下一篇:java – 在applet中找不到主要方法错误