美文网首页程序员
34岁!100天!学会Java编程(Day13-Day15)——

34岁!100天!学会Java编程(Day13-Day15)——

作者: 魏小筠 | 来源:发表于2017-11-12 11:39 被阅读0次
    34岁!100天!学会Java编程(Day13-Day15)——Swing软件开发

    时代的潮流

    11月9日-11日,三天转瞬即逝。这几天中国大地上激流涌动:

    • 在高层,特朗普访华,给美国带来了高达2500亿美元的签约额,让世界再次见识了中华民族买买买的大手笔;
    • 在民间,“双十一”已经变成了比春节还热闹的一个节日,当然不是单身节,而是剁手节,我和老婆也没能免俗,11日凌晨刷手机刷到手疼;
    • 在家里,我和老婆重启了造人计划,老婆8号刚从南京回来,9号据说就到了排卵日,自然得抓紧机会努力造人。

    艰难的Swing

    关注时代之余,我则在晚上和周末继续着我的Java打怪升级之路。
    这阶段升级的目标是学会Swing编程,并且将我简陋的“CE项目V1.0”升级到Swing界面的2.0版本。
    可是在看知识点和编程实践的过程才发现Swing并不好学:

    • 首先是知识点很多,窗体、面板、组件、布局、事件、控件每一项的具体知识点都有不少;
    • 其次在Eclipse上每一个页面的布局和显示效果全靠程序代码来调整,没能体现一点所见即所得的精神;
    • 然后就是在编程过程中的各种坑,尤其是窗体、面板、组件的各种来回嵌套,以及让人在风中凌乱的布局。
      Anyway,学习还是得继续,只当是编程之路上九九八十一难之一难吧,回过头来简单总结一下。

    (一)知识点学习

    知识点的学习是一个边学边练习的过程,这个偷不得懒,按照《Java从入门到精通》这本书梳理的知识点如下:


    Swing知识点

    (二)交互界面设计

    在网上找了一个专门做用户界面设计的软件叫做Axure,进行了用户交互界面如下:


    Axure用户界面设计

    (三)代码实现

    嗯,终于到了最难的一步,周六在家憋了一天,终于能够用Java代码来实现上面这个用户界面设计,先上图:


    CE项目V2.0

    总结几点经验:

    1. 代码的分层设计与组装。用户界面设计完之后,不光要对界面按组件进行分解,还一定要将组件按层次结构进行分解,然后在代码中按层次结构逐级嵌套,否则组件一多,就很容易凌乱。后面有时间我再上个组件层次结构图,这块说多了都是血泪啊。
    2. 图片的读取和表现。为了在首页的其中一个JPanel上插入一张图片,先是用书上的方法不好使,然后上网搜了很多办法,郁闷了很久,终于找到一个靠谱的方法,就是一个ImageIO.read(file)+(Graphics)g.drawImage就能搞定,所以方法还是越简单越靠谱,其他很多复杂的方法实际上都不怎么好用。
    3. 用户界面的重绘。在点击“登录/注册”等按钮后,需要将当前页面上加载的JTabbedPane拿下,换上一个JPanel,此后需要使用repaint对整个窗体进行重绘,才能表达出来。下面的“发现”页面由于就在选项卡上,所以不存在这个问题。
    4. 事件的设置。事件的类型有很多种,在这个程序中我只是简单使用了ActionListener和ChangeListener,其他的事件后面有机会再进一步摸索。需要注意的是事件都是接口,在添加事件的时候,需要编写一个内部类来实现事件对应的具体操作。另外,一个事件设置一次就可以重复使用,只有remove之后才会失效。
    5. 数据交互。这块是用户界面实现后程序的重点,由于时间不足,我只是简单使用了setText和getText命令来进行简单的数据交互,更复杂的交互方式后面再进一步摸索。
      大致总结就到这里,下一阶段将进入“CE项目V3.0”开发阶段,将要用上我等待已久的数据库软件Mysql了,终于可以抛弃呆板的txt文档了。

    相关文章

      网友评论

        本文标题:34岁!100天!学会Java编程(Day13-Day15)——

        本文链接:https://www.haomeiwen.com/subject/mzynmxtx.html