关于Java的界面编写

1、现在Java界面编程真的不是首选。可插拔式的Look and feel不论基于Basic 还是Metal (参考网络上的BeautyEye Lnf)编写繁琐,开发周期长。后来1.7退出的Synth基于XML导入式概念虽然新颖,但是对于Components properties的支持不够。基于Nimbus编写的话,首先运行效率不如Metal,然后重绘每个Component也很麻烦,用图片做背景需要九宫格技术的支持。无论如何,Look and feel由于Java内部本身的限制,提供定制的范围确实有限,有些东西你customize不了,因为它没有提供那样的接口。
2、但是简单的界面编写如对动态效果没什么要求,对Desktop集成没什么要求(Java需要调用JNI来集成一些桌面特性,如WIn7任务栏图片的进度加载显示,还有比如SystemTray也只能用AWT的PopupMenu导致没法定制出和QQ、迅雷等一样的托盘效果),使用Swing还是可以的,Swing的优势也就在于跨平台性好,由于SWT。建议简单界面能使用Swing的还是不要使用SWT,对于简单界面编写L&F也搓搓有于了。
3、对于想要Charts、多媒体支持、动画效果、滤镜支持、触摸事件感应处理等富Internet绚丽界面的追求的话,建议选择用JavaFX,可插拔式用外部链接的CSS代替,一般界面的编写可以用FXML,逻辑处理用Java语言。这样结构化很明显,也很现代化。但是JavaFX目前Bug还是很多,很多功能不完善,比如SysteraymT没有支持,Print打印功能也是在未来Java8中绑定,但是对于打印表格table似乎还没有支持。其UI组件未来会逐渐增多。
4、目前的话Java界面编写还是JavaFX比较有前途,但是就目前的JavaFX而言并没有什么明显的竞争力,只能期待以后的发展了。
5、建议还是用目前主流的软件编写工具。想要在Windows下使用的话,还是尽量调用本地化的windows API
6、用数据库相结合的小软件编写,Java还是不错的。内置的JavaDB就不错,MySQL以及Microsoft Database也有很多开发案例,使用Oracle大型数据库就更不用说了。

最后,你的问题,一般我们不用getLayeredPane().使用LayeredPane 等直观,详见我的博客举例对比。然后是你使用Swing,一定要深刻理解java界面的绘图机制。像背景图片什么绘制是很简单的,至于图像的缩放,运用ImageOP写个缩放的,或者模糊效果等等,根据addComponentListener()中的componentResize()来缩放就可以了。绘制Border或者Button的背景,图片最好使用九宫格技术,防止图片拉伸失真。使用Synth的话它自带这样的技术。否则建议引入Android的NinePatch技术。详见我的CSDN博客。

你可能感兴趣的:(关于Java的界面编写)