你用JavaGUI做的课程设计是这样子的吗?

很多人学完《Java基础教程》后,接着一般都会用GUI来做一下课程设计,多数同学通常选择用插件WindowBuilder来设计程序的界面,认为用插件做会更快更高效率,但是,这样做出来的界面是不是和XP老系统的外观一样呢?很多人在win10上运行的程序,界面是扁平化的,当然看不出明显的粗糙之感,但一旦移植到win7上运行,效果便会大打折扣,就像下图一样:

其实,众所周知的是,很多软件不是用Java来写的,所以大家对Java的GUI编程便不会那么重视,认为其能实现功能就好,那Java的GUI编程能不能把界面做得像其他语言编写的界面一样美观呢?答案是可以的,这次小编就用Java的GUI模仿有道词典的外观来做一次课程设计,把Java的GUI认认真真地熟悉一遍,而且不使用WindowBuilder插件。

下图便是小编经过几个星期的设计得出的一个GUI程序,并附上有道词典的主界面对比一下:

其次是各种界面的外观:

登录界面、注册界面

而且鼠标移动到各种功能按钮时的按钮的字体会变颜色,点击后,按钮的背景颜色也改变,用以表示选中的是什么按钮。

如果使用原来默认的组件属性是达不到这种效果的,整个框架需要取消Frame以及弹出窗口Dialog原来的边框显示,取消后也就没有了最小最大化按钮和退出按钮,需要自己添加上去,为了达到按钮和标题栏融为一体的外观效果,本人就用PPT设计了几个按钮图标作为背景,图标和标题栏一样使用(204,51,51)背景色,如下图:

这样就只需要直接用这些图标作为鼠标进入和离开按钮时的背景即可达到有道词典最大最小化按钮的显示效果,但取消边框后的窗体是不能被移动的,这时候需要设置一些联动参数:

而且,左边一栏功能按钮随鼠标移动的显示效果也需要设计两个函数来实现(哈哈,不好意思,下面这俩函数略显笨拙,但它们还是把效果实现了):

可以看出,前前后后都是利用GUI各类组件所共有的setBounds()、setBackground()、setFont()等设置属性的方法,加上一些做动作的函数,便可以把原来看起来一般的界面来个大翻身。

还有很多地方因小编文笔浅陋而困惑如何表述,如果想了解这个程序,可以加QQ资源群689770833(因为小编的百度网盘装满了……)下载小编写的程序——小小图书管理系统(无数据库),直接导入eclipse可用。当然,群里也有实现了把内容保存到数据库的文件——图书管理系统(有数据库),使用的是MySQL,自行下载后导入eclipse和数据库即可使用。

原文发布于微信公众号 - 程序员的碎碎念(gh_53e607dd4782)

原文发表时间:2017-12-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

ASP.NET 调味品:AJAX

Karl Seguin 适用于: AJAX(异步 JavaScript 和 XML) Microsoft AJAX.NET Microsoft ASP.NET ...

1875
来自专栏DannyHoo的专栏

浅谈iOS中WKWebView和UIWebView的清除缓存问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

561
来自专栏张善友的专栏

Lightweight Test Automation Framework之旅

Lightweight Test Automation Framework是ASP.NET QA团队开发的自动化集成测试框架,并且应用在ASP.NET QA团队...

1899
来自专栏IT大咖说

2018年1月份最热门的JavaScript开源项目

本篇文章为大家盘点了1月份最热门的 JavaScript 项目,让我们一起来看下吧! 一、编辑器tui.editor https://github.com/nh...

2708
来自专栏.net core新时代

我的前端学习历程

  很难想象一个半年前还在做后台开发,对前端知之甚少的我,现在也可以从事前端开发了。这半年的学习过程将会是我人生一笔宝贵的财富,这让我想到一句话“在成长的道路上...

1866
来自专栏青玉伏案

窥探Swift系列博客说明及其Swift版本间更新

Swift到目前为止仍在更新,每次更新都会推陈出新,一些Swift旧版本中的东西在新Swift中并不适用,而且新版本的Swift会添加新的功能。到目前为止,Sw...

1916
来自专栏知晓程序

如何开发电商类小程序 Vol.3:数据加载和图文排版

934
来自专栏大前端开发

如何为你的微信小程序瘦身?

众所周知,微信小程序在发布的时候,对提交的代码有1M大小的限制!所以,如果你正在写一个功能稍微复杂一点的小程序,就必须得时刻小心注意你的代码是不是快触及这个底线...

745
来自专栏Puppeteer学习

Headless Chrome:服务端渲染JS站点的一个方案【上篇】【翻译】介绍Headless Chrome 预渲染页面

1825
来自专栏Windows Community

Windows 商店应用中使用 Office 365 API Tools

本篇我们介绍一个API 工具,用于在 Windows Store App 中使用 Office 365 API。 首先来说一下本文的背景: 使用 SharePo...

33910

扫描关注云+社区