快速业务通道

Java Swing组件全演示 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
布局管理器,嵌板

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):类似于网格布局,但功能更强大也更复杂。能处理所有的布局。

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

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

public SwingTest()    {    // 初始化所有子模块    MenuTest menuTest = new MenuTest();    LeftPanel leftPanel = new LeftPanel();    RightPanel rightPanel = new RightPanel();    BottomPanel bottomPanel = new BottomPanel();    CenterPanel centerPanel = new CenterPanel();    // 设置主框架的布局    Container c = this.getContentPane();    // c.setLayout(new BorderLayout())    this.setJMenuBar(menuTest);    c.add(leftPanel,BorderLayout.WEST);    c.add(rightPanel,BorderLayout.EAST);    c.add(centerPanel,BorderLayout.CENTER);    c.add(bottomPanel,BorderLayout.SOUTH);    setSize(700,500);    setTitle("Swing 组件大全简体版");    // 隐藏frame的标题栏,此功暂时关闭,以方便使用window事件    // setUndecorated(true);    setLocation(200,150);    show();    }

如拆分三个子组件,可把一个拆分嵌板做为另一个拆分嵌板的子组件!

Java Swing组件全演示(3)

时间:2010-12-14

五 事件模型

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

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

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

// 利用无名内隐类,增加窗口事

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号