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

相关文章

来自专栏快乐八哥

使用jQuery的animate方法制作滑动菜单

周末看Ziv小威的博客《制作滑动条菜单,如何延时处理滑动效果,避免动画卡顿》,参见地址:http://www.cnblogs.com/zivxiaowei/p/...

1959
来自专栏Google Dart

AngularDart Material Design 卡片 顶

材料卡是由Google材料团队(也称为mdc-web)提供的卡片样式。 这是一个允许在AngularDart应用程序中使用样式的包装器。 有关如何使用这些样式的...

1154
来自专栏葡萄城控件技术团队

如何使用纯前端控件集 WijmoJS 中的可视化在线设计器

WijmoJS Designer,一种全新的在线Web托管工具,为WijmoJS纯前端控件集提供了可视化设计图面和 Java代码生成器。 WijmoJS Des...

1142
来自专栏向治洪

React Native ios开发第一课

前言 本篇文章的作用在于帮助你快速上手使用React Native编写iOS应用。如果你现在还不太了解React Native是什么以及Facebook为什么...

1968
来自专栏理论坞

那些你不知道的Photoshop冷知识⑤——CC2015评测专题

笔者在探索新版本时,首先注意的便是首选项的变化,可以发现这次更新之后首选项侧边栏多了不少东西,点进去之后才发现原来是进行了重新分类,那么有哪些好玩的功能呢?介绍...

774
来自专栏软件工程师成长笔记

火星坐标拾取工具

在国内必须至少使用GCJ-02的坐标系,而GCJ-02,“火星坐标”是在国内最广泛使用的坐标体系。那么,我们就来看看,如何直接获取到GCJ-02坐标呗。 请大...

1672
来自专栏EAWorld

像踢球一样玩转Redux和React

引言 React的核心是使用组件定义界面的表现,是一个View层的前端库,简单来说它就是一堆前端组件,view,view,view,重要的事情...

2767
来自专栏.Net移动开发

Smobiler 4.4 更新预告 Part 2(Smobiler能让你在Visual Studio上开发APP)

Hello Everybody,在Smobiler 4.4中,也为大家带来了新增功能和插件(重点,敲黑板)。

1103
来自专栏Crossin的编程教室

Python的门面担当

在大多数时候,我们都在黑黢黢的控制台里执行 Python 脚本。这看起来很酷很 GEEK。但对于部分场景下的用户来说,这样就不大美观和人性化了:我们需要交互更方...

1324
来自专栏前端知识分享

第81天:jQuery 插件使用方法

在追求页面互动效果的时代,大家都想把页面效果做的美轮美奂,这一切都离不开前端技术脚本Javascript,而最近常被人用到的Javascript库文件则是jQu...

772

扫码关注云+社区