Swing组件大全随着Java风潮一起来席卷国内

开发 后端
本文介绍Swing组件大全随着Java风潮一起来席卷国内,学习Java的方法和路径越来越多,并在学习过程中参考作者设计这一程序的方法和思想,最终形成自己的思维方式和学习方式。

一.抛砖引玉

本文指在利用一个小程序,Swing组件大全来引导大家学习Java这门语言,熟悉Java Swing的各个组件。并在学习过程中参考作者设计这一程序的方法和思想,最终形成自己的思维方式和学习方式。你能举一返三是作者最开心的事情。小程序演示了Java Swing大部分组件。最后附上了全部代码及详细的注释说明。希望本文能对大家学习Java有所帮助。

学习Java的方法和路径越来越多。而在大量的书本前,在Java庞大的类库前大大家都有点迷失方向的感觉,是学 J2EE,J2ME还是。。。。。。然而所有的这些都或多或少的离不开J2SE。万丈高楼平地起。J2SE是整个Java的基础,学好了这个对Java的各个方向都是很有利的。而学习J2SE的最初点就在界面设计,因为界面编程是你来感觉最直接的手段,是提高大家编程兴趣的很好开始,因为你写完程序编译后可马上看到自己的成果。而不像后台编程做完了都感受不到效果。而好的界面也是你测试你其他程序的基础。

界面设计!不就是拖拉操作吗?如果是VB,VC等可视化的编程,的确只是一些拖拉操作,由于Java语言的设计中所有的东西都是程序代码,在Java中如果想要设计一个好的界面,可不是简单的拖拉操作能完成的。即使使用了如JBuilder这么强大的可视化工具,你也得亲自动手写一些界面设计代码才能很好的完成你的任务。如果你能在此基础上理解Java界面设计的思想,对你学习这门语言将有莫大的帮助。

好了,说了这么长的废话,让我们来看看Java的界面设计的基础。

Java界面设计主要涉及Awt,Swing两大类库,Swing是Awt的扩展和功能加强。下面我们就以Swing为基础来说说整个Java的界面设计。

二.感受效果

在开始之前,让我们看看这篇文章要达到的效果,有了目标和成果才有学习的兴趣,起码我是这样认为和学习的。如下图所示,这就是我们设计的界面,它包括了Swing中大部分常用的组件。有些功能界面上反映不出来,大家可尝试编译源代码点南击各个部分,看看它们的响应事件。

三.设计思想和方法

不知道大家(一般是初学者)在看编程书籍的时候有这种体会没有:在看的过程中,好像大部理解了,并且效率还不错,可是回头来要自己写个和书上一样的程序出来,可能不少人只有重新拿书照打的了;有些人在照书上打过了一遍,也似乎理解了。可回头来真正到用的时候,好像又不记得了。作者本人在初学编程时就经历过很多次这种情况。

追其原因,无外乎没有融会贯通所学的知识,编程最讲求动手二字,动手的真正意义在于写自己所想所领会的程序而不是copy现成的程序。因为只有经过自己思考,设计才能把书上的知识真正溶入自己的大脑。下面我们以Swing组件大全来说说这个方法和思想。

在看完书上介绍的Swing组件这章后,我心中对Swing大概有了个了解,只差动手了。而本人又不想照书上的例子一个个来试。于是就想到了做个程序把书上介绍的所有组件放到一个界面来,并尝试用到书上介绍的所有方法。

砍柴不误磨刀功!在开始这前,我手画了一份设计图纸,如上面界面所示(当然没那么漂亮了)。并用简单的软件工程思想对结构进行了大概的划分。这里把整个界面划分为一个主模块和五大子模块。所有的子模块都是继承至相应的容器,主模块SwingTest 既是管理模块也是主界面,继承JFrame主框架,管理本身的属性及JFrame上的其他子模块。MenuTest子模块继承至JmenuBar负责菜单的显示和事件处理。其他子模块继承至JPanel,管理放置在其上的组件的布局和显示。从子模块的名字大家也可看到他们的位置和功能。如下图所示:

在编写程序前想好结构和思路是个很好的习惯,它将会帮你大大减少工作量,提高程序的可读性和效率。

四.容器,布局管理器,嵌板

Swing中所有的组件都是放到容器中,主要的容器包括:JFrame,JPanel,JWindow,JDialog,JPanle。JFrame是java的主框架,几乎所有的Java应用程序界面都是在主框架之中设计的。有些容器并非一层,而由几层嵌板组成,本文将会用到其中在个:拆分嵌板 (JSplitPane),内容嵌板, 页签式嵌板(TabbedPane)

拆分嵌板:按指定的方向和方式拆分其内的两个子组件,记住一个拆分嵌板只能拆分两个子组件,如果想要拆分三个,大家自己先想一想办法。本节最后给出了答案。

内容嵌板: JFrame,Jwindow,Jdialog就是上面提到的有多层嵌板的容器,如果要在这些容器上面放置组件,必须放置在他们的内容嵌板(pane)上。我们通过函数getContentPane()可得到当前容器的内容嵌板。

页签式嵌板:这个嵌板如同卡片,在上面提供文件夹式的页签,当前只显示一页,如要进入下一页,只要点击上面的页签。

有些如JPanel是可以直接放置组件的容器。所以不需要使用嵌板。

如果要按自己的想法排列放在容器上的组件,我们必须使用到布局管理器(Layout)来进行管理。Java系统默认的布局管理器为边界管理器 (BorderLayout)。它把版面分为五大块,中央区域(Center),顶端(North),底部(South),左侧(West),右侧 (East),细心的你可能会发现我们的主界面就是用的这个布局架构。其他的几个布局管理器有:
◆流布局(FlowLayout):把其内的组件按从左到右,从上到下的流方式排列。
◆网格布局(GridLayout):把组件放置到布局中的设置的每个网格中
◆无序网格布局(GridBagLayout):类似于网格布局,但功能更强大也更复杂。能处理所有的布局。

如果你仔细观察会发现我们的主界面最右边会发现使用了网格布局。

下面来看看我们的主模块的构造函数代码,来感受一下上面的结构设计。

  1. public SwingTest()  
  2.  {  
  3. // 初始化所有子模块  
  4. MenuTest menuTest = new MenuTest();  
  5. LeftPanel leftPanel = new LeftPanel();  
  6. RightPanel rightPanel = new RightPanel();  
  7. BottomPanel bottomPanel = new BottomPanel();  
  8. CenterPanel centerPanel = new CenterPanel();  
  9. // 设置主框架的布局  
  10. Container c = this.getContentPane();  
  11. // c.setLayout(new BorderLayout())  
  12. this.setJMenuBar(menuTest);  
  13. c.add(leftPanel,BorderLayout.WEST);  
  14. c.add(rightPanel,BorderLayout.EAST);  
  15. c.add(centerPanel,BorderLayout.CENTER);  
  16. c.add(bottomPanel,BorderLayout.SOUTH);  
  17. setSize(700,500);  
  18. setTitle("Swing 组件大全简体版");  
  19. // 隐藏frame的标题栏,此功暂时关闭,以方便使用window事件  
  20. // setUndecorated(true);  
  21. setLocation(200,150);  
  22. show();   

五.事件模型

在Swing 中每个组件都可触发事件,一旦触发事件会被一个或多个Listener(监听器)接收。不同类型的事件分别由个别的class表示。事件发生点可以和处理事件的代码分开。

要想处理事件,只要产生Listener对象,并调用组件的addXXXListener()方法注册事件。我们大部分是通过继承事件接口来处理事件的。但是继承Java接口我们必须实现出接口中的所有方法。有些接口包含了大量的函数,如果要一个个实现是件很麻烦的事件上,Java中定义了相应接口的 Adapter接配器类来解决这种情况。接配器类已经帮我们实现了接口的所有方法,而我们只要继承接配器就可在代码内做我们想做的事情。也即只要实现或覆写我们想要实现的方法。

下面我们还是以主模块为例,来处理关闭窗口事件。

  1. // 利用无名内隐类,增加窗口事件  
  2. this.addWindowListener(new WindowAdapter()  
  3. {  
  4. public void WindowClosing(WindowEvent e)  
  5. {  
  6. // 释放资源,退出程序  
  7. dispose();  
  8. System.exit(0);  
  9. }  

六.总结

好了,我们来回顾一个我们的上面的内容:设计的思路,容器,嵌板,布局管理器, Swing组件大全的事件。

大家明白了为什么做项目能快速提高自己水平了吧。其实上面的方法原理和做项目差不多,任何事只要经过自己的大脑思考,亲手操作,想忘记并不是那么容易的了。相信看了本文和代码再辅以相关的书籍介绍,大家对Swing处理会有一定的感性理解了。

开始动手吧。发挥你的天才思维,自己设计一个更好的Swing组件大全吧。当然你也可在本程序的基础上完善其中更复杂的功能。比如:把树形列表内容用window文件资源器代替,把表格的处理和数据库相连接或和相关数据连接,让文本区可显示图片。。。。。哦,天啊。说不定一个好的产品也会因此诞生。

再次强调开始之前请先设计你的界面,画出你的程序结构图。即使再小的程序也请你大概勾一个它的轮廓。

【编辑推荐】

  1. 概述Swing大多数控件
  2. GUI程序与Swing中的线程
  3. 浅析Swing.SWT和AWT的区别
  4. AWT和Swing的区别
  5. 浅谈Swing中提供了JOptionPane
责任编辑:佚名 来源: 电子工业出版社
相关推荐

2021-06-09 08:15:50

volatileJava开发

2012-04-14 20:47:45

Android

2012-06-25 09:37:24

Web

2012-11-08 17:33:53

智慧云

2020-06-11 18:35:23

C++编程语言

2015-01-06 09:31:35

2010-05-21 17:32:07

IIS服务器

2009-10-29 16:32:34

Oracle表空间

2012-09-10 13:42:55

PHP项目管理

2021-06-02 15:30:12

Synchronize并发多线程

2021-04-26 11:18:15

FedoraLinuxBug

2022-05-20 12:14:50

ZuulSpringClou

2011-09-07 22:59:07

联想一体机

2010-05-10 15:31:35

Unix文件

2012-07-10 09:14:51

Web

2009-09-09 09:23:37

服务器稳定性

2017-11-02 14:39:54

2017-11-02 15:28:52

2021-07-28 14:15:51

漏洞悬赏平台漏洞谷歌
点赞
收藏

51CTO技术栈公众号