你用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 条评论
登录 后参与评论

相关文章

来自专栏Java进阶架构师

架构师推荐:提高90%开发效率的工具推荐

都说文档在手,天下我有.这个工具对于我这种喜欢前后端折腾的人来说是非常有用的,因为很多时候,我往往只记住思路,但是具体代码记不住,这个工具有很好的保存代码块功能...

932
来自专栏macOS 开发学习

Mac开发跬步积累(三):被忽略的 NSTabViewController

Apple 官方描述 NSTabViewController作为一个容器业务控制器,可以管理多个页面,并且一次仅显示一个页面

1084
来自专栏码云1024

Jupyter Notebook

1293
来自专栏谦谦君子修罗刀

RN项目第一节

一、项目说明 本项目为模仿美团的项目,采用的是网上提供的API接口。导航采用 公司推荐的react-navigation,滚动条采用第三方组件react-na...

3336
来自专栏我就是马云飞

这才是真正的万能圆角ImageView

不知道有没有人记得我去年写过一个圆角的imageview。不知道的可以先去看看:万能圆角imagview,本文是基于上一篇的内容进行添加以及修改的。不然直接看这...

2059
来自专栏码云1024

Jupyter Notebook

3628
来自专栏木子昭的博客

Sublime有多好用?多点编辑Markdown写作

sublime text sublime是一款文本编辑器,特点是操作流畅,无卡顿,界面炫酷,问世的时候,凭借首创的"代码小地图",和"多点编辑",甩出其它编辑器...

38211
来自专栏数据小魔方

think-cell chart系列19——任务甘特图

今天跟大家分享think-cell chart系列19——任务甘特图。 甘特图在之前的教程中曾经讲过,当时是在excel中制作完成的,花费了相当多的时间和功夫。...

4257
来自专栏小巫技术博客

高效Mac(三)面向程序员的交互设计神器:Framer Studio

623
来自专栏重庆的技术分享区

如何用css和js禁止网页选择文字(兼容) 保护版权呢?(附代码)

1542

扫码关注云+社区