首页 > 代码库 > 工欲善其事,必先利其器

工欲善其事,必先利其器

原谅我喜欢故弄玄虚,给一篇通熟易懂的文章加上了一个如此高大上的标题,罪过,罪过。。

近期在做用swing开发的小程序,因为对界面不是很熟悉,所以开发起来不免有些吃力。

不过硬骨头还是得啃,首先对各种layout要非常熟悉,他们能干什么,什么效果用哪种layout,等等,这些都是需要学习的。

但是我觉得我到现在程序快开发完了都没有完全搞清楚怎么灵活运用他们,真差劲啊!

刚刚在网上找了一个别人根据FlowLayout写的一个垂直布局,真是感觉高大上啊,原来深度定制就是这样完成的,我什么时候能自己写原生代码呢?

之前一直在纠结这个问题,scrollPane只能根据某个容器是否撑满来决定滚动条是否显示,但是swing却没有提供很好的垂直排列组件的布局。

这下问题就麻烦了,如果没有这样的布局,scrollPane完成滚动条怎么实现呢?所以这样一个布局是必须的。

我觉得找到这个定制的类确实是幸运啊!非常感谢这个类(VFlowLayout)的作者!

但是有了scrollPane还不够,得给每个组件添加上下移动和删除功能,虽然每个组件的位置都知道,序号也知道,但是如果得到这些数据再去操作的话势必会非常麻烦,有没有更加快捷简便的方法呢?于是我就找到了得到当前组件序号的方法container.getComponentZorder(scp);但是这还不够啊,还是得自己计算。

既然能得到当前组件的序号,能不能直接设置他们的位置呢?我就找方法,事实证明是有的,这个方法有对应的set方法!

oh,my god!

我以前处心积虑写出的复杂的算法居然被原生类秒杀了!等等,我为什么觉得非常开心?

 

小结:1、动手做之前先把基本的经常用的东西学习一遍,认认真真学习,这一边对后面的开发非常重要,要做到心中有数,不要指望第二遍!

        2、写具体功能之前,确定需求,不要抱着先试试的心态做,因为很有可能你后来的需求要求你做的跟你试试着做的没有满毛钱的关系,那么你之前做的就完全是在浪费时间

        3、追求一次成功,不要以为量变一定能引起质变,如果是这样的话,你的拖拉也会将你拉入人生的深渊!

        4、今天就是你人生的全部,其他的都不属于你。你想怎么过你的人生,你就怎么过今天,过了今天你的人生不会不同,因为明天也是今天。

工欲善其事,必先利其器