`
空空儿
  • 浏览: 135080 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

Swing 基本介绍

    博客分类:
  • J2SE
阅读更多
1-1:Swing常用的package
            PACHAGE                         |                     内          容
          -----------------|-------------------------------
           javax.swing                      |         最常用的pachage,包含了各种swing组件的类
           javax.swing.border               |         包含与swing组件外框有关的类
           javax..swing.colorchooser        |         针对swing调色盘组件(JColorChooser)所设计的类
           javax.swing.event                |         处理由swing组件产生的事件,有别于AWT事件
           javax.swing.filechooser          |         包含针对swing文件选择对话框(JFileChooser)所设计的类
          ----------------------------------------------
           javax.swing.plaf                 |         处理swing组件外观的相关类
           javax.swing.plaf.basic           |        
           javax.swing.plaf.metal           |        
           javax.swing.plaf.multi           | 
           ----------------------------------------------      
           javax.swing.table                |         针对swing表格组件(JTable)所设计的类
           ----------------------------------------------
           javax.swing.text                 |         包含与swing文字组件相关的类
           javax.swing.text.html            |
           javax.swing.text.html.parser     |
           javax.swing.text.rtf             |
           ----------------------------------------------
           javax.swing.tree                 |         针对swing树关元件(JTree)所设计的类
           javax.swing.undo                 |         提供swing文字组件Redo或Undo的功能
1-2:swing的版面结构
   Swing中几乎所有组件都是从JComponent衍生而来,也就是说这些组件都是lightweight Component,均由纯java code所编写面成
、Swing中以下几个组件不是由JComponent继承面来:
    JFrame(JRoot Pane)
    JDialog(JRoot Pane)
    JWindow(JRoot Pane)
    JApplet(JRoot Pane)
  以上四个组件是heavyweight Component,必须使用到native code来画出这四个窗口组件,因为要在操作系统中显示窗口画面,必
须使用操作系统的窗口资源,而以往的AWT组件大多使用native code所构造出来,因此Swing中的JFrame便继承原有AWT中的Frame
类,面不是继承JComponent类。同样,JApplet是继承原有AWT中的JApplet类,也不是继承JComponent类。
    JFrame、JDialog、JWindow及JApplet这四个组件统称为最上层组件,因为其余的swing组件都必须依附在此四组件之一上才能
显示出来。此四组件均实现(Implement)RootPaneContainer这个界面(Interface),此界面定义了各种容器取得与设置并不是真实的容器,它是由Glass Pane
与Layered Pane所组成(Layered Pane里拥有Content Pane与Menu Bar,而Menu Bar可选择使用或不使用),
我们不能在JRootPane上加入任何的组件,因为它只是一个虚拟的容器,若要在最上层组件上加入组件,必须加在Layered Pane或是
Layered Pane里的Content Pane上。以JFrame为例,一般我们要在JFrame上加入其他组件(如JButton、JLabel等)必须先取得JFrame
的Content Pane,然后将要加入的组件放在此Content Pane中,而不是直接就加到JFrame上。因此若要在JFrame中加入一个按钮,不
能像以前AWT时一样写成frame.add(button)的形式,而必须先取得JFrame的Content Pane,然后将按钮加入Content Pane中,如:
   frame.getContentPane().add(button)
否则在编译的时候将有错误信息产生。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
注意:
1.组件必须加在容器中,而容器本身具有层次性的关系,就如同珠宝盒一般,大盒子里面可以放小盒子,小盒子里面还可以放更小的盒子,而珠宝就可以放
在某一个盒子中,这里的珠宝就代表组件,盒子就代表容器。因此若您想在JFrame加入任何组件时,必须
先取得JFrame的容器来放置这些组件,而由于JFrame、JDialog、JWindow与JApplet是显示Swing组件的源头,我们可以称它们为根
组件,也就是所谓的最上层组件。
2.RootPaneContainer它是一个interface,共有5个类实现(Implement)它,分别是JFrame、JAppleet、JWindow、JDialog、
JInternalFrame,其中JInternalFrame是一个lightweight Component,它不是一个最上层组件,也就是说JInternalFrame不能单独显示出来,必须依附在最上
层组件中,我们将在下面讨论组件,而JFrame,JApplet,JWindow,JDialog均为最上层组件。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
RootPaneContainer定义了下面几种方法:
    方法
  Container       getContentPane()返回contentPane
  Component       getGlassPane()返回glassPane
  JLayeredPane    getLayeredPane()返回layeredPane
  JRootPane       getRootPane返回属于这个组件的JRootPane
  Void            setContentPane(Container contentpane)设置ContentPane
  Void            setGlassPane(Component glassPane)设置GlassPane
  Void            setLayeredPane(JLayeredPane layeredPane)设置LayeredPane
JFrame如何取得Content Pane的实际流程,下面是一段很简单的程序代码:
  public class Simple{
    Simple(){
       JFrame frame=new JFrame();
       Container contentPane=frame.getContentPane();
       JButton button=new JButton();
       contentPane.add(button);
    }
  }
当我们写frame.getContentPane()时,会返回此frame的Content Pane,也就是一个容器组件,有了容器之后我们才能将button组件
摆进去,此时JFrame才算拥有button组件。所以JFrame就好像是一块空地,要在这空地上信人应该先盖一栋房子(容器),然后人
、家具、设备等等(组件)就能搬进此房子中。下面的层次结构说明了最上层组件都含有JRootPane组件,JRootPane本身就含有容
器组件,可让最上层组件装入其他的组件。

      |Frame------JFrame(JRoot Pane)
      |
Window|Dialog-----JDialog(JRoot Pane)
      |
      |
      |-----------JWindow(JRoot Pane)

Applet -----------JApplet(JRoot Pane)

图示:
         |Grass Pane
         |
Root Pane|
         |            |Content Pane
         |Layered Pane|
                      |Menu Bar

0
1
分享到:
评论

相关推荐

    Swing之JTable的详细介绍

    Swing之JTable的详细介绍,其基本用法及源码例子

    Swing 教程我从ibm网上下载的 

    在本教程中,将介绍 Swing 中超出基本组件和应用程序的一些方面。虽然这些研究领域更难学习和掌握,但它们更强大,可以让您创建更好的应用程序。本教程介绍的更高级的 Swing 概念是: 理解 JTable,以及它众多令人...

    Java Swing图形界面开发与案例详解

    《Java Swing图形界面开发与案例详解》全书共20章,其中第1~2章主要介绍有关Swing的基础知识,包括Swing的基本概述、如何使用IDE开发Swing程序;第3~15章结合众多实例和问题介绍最常用、最有用的组件及其应用方法...

    Swing实现ATM取款机系统(带sql文件)java全套代码,支持换背景图片

    注册,登录,改密码,存款,取款,转账,交易记录,手机...1.基于JavaSwing开发的ATM取款机系统,适合课程设计和毕业设计参考 2.使用技术:mysql+jdbc+dbutils 3.功能介绍:支持设置背景图片,经过多次优化,100%可运行

    利用Java Swing 实现游戏开发.pdf

    利用Java Swing 实现游戏开发,介绍java swing开发中最基本的容器、控件、边框等,其中教你实现一个菜单栏的关于对话框挺实用的!

    Swing 入门资料整理文档

    本教程面向的是 Swing 的初学者。...当您在自己的机器上运行它之后,我们将向您介绍一些关于 Swing 的知识:创建一个航班预订系统,逐渐向其中添加内容,直到您得到一个基本的,但却完全能够工作的应用程序.

    swing基础问题解答

    SWING 的基本介绍 很好的教材 我刚学的 大家顶一下

    基于设计模式的Java swing交互式界面模式的应用研究与实现

    方案做了一个示例程序,即利用swing类库和基于前面介绍的设计模式,以按钮 为例创建了一个界面生成器,该按钮生成器能按照用户输入的属性生成具有该属 性的swingYXL格的按钮,并且生成相应的java代码,用户也可以...

    Java项目:银行管理系统设计和实现(java+swing)

    项目介绍: 本项目是使用Java swing开发,可实现ATM系统/银行系统的基本登陆、转账、查询余额、存取款业务。界面设计比较简介

    oracle jdk自带swing 代码示例swingset3

    包含swing入门组件完整示例, 几乎包含swing所有组件介绍 ,可以带你入门了解swing的各种UI效果和使用示例,让你对swing有个整体了解. 顶层容器:JFrame/JDialog/JWINDOW 容器:JTabbedPane/JScrollPane/JSplitPane/...

    swing 程序设计ppt

    swing程序设计的基本组件介绍,很好的入门资料……

    Java GUI SWT/Swing/AWT的介绍及比较

    本文通过对 Eclipse 的 SWT 和 Java Swing、Abstract Windows Toolkit(AWT)GUI 工具包进行比较,可以帮助新应用程序的开发人员从中...您可以通过本文了解对每个工具包的基本特性的介绍,以及使用每个工具包的优缺点。

    基于Java Swing的数字时钟程序源码+说明(课程作业).zip

    * 基本掌握Java语法和一些Java Swing相关的知识 【注】 1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载使用体验! 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工...

    Swing 实用案例

    本书介绍Swing的基本用法,全实例并通过上机测试。是Swing初学者的宝典.

    基于java swing的超市( 仓库)管理系统(源码+sql server数据库).zip

    系统介绍 三只松鼠超市管理系统是一款辅助超市管理员管理超市的实用性项目,根据超市的日常管理需要,超市管理系统应包括基本档案管理、采购订货管理、仓库入库管理、仓库出库管理、人员管理、部门管理6大功能。其中...

    Java2图形设计基础及Swing教程 exe

    本教程内容分两天部分,第一部分主要是图形设计基本知识,主要介绍了JAVA图形、颜色和字体、图像过滤、继承的事件处理、授权事件模型、无鼠标操作打英拖放技术、橡皮带技术、又缓冲技术、图形动画等。第二部分是关于...

    原创Java Swing俄罗斯方块1.1版-含完整源码

    详细介绍见链接(有界面详细截图) http://blog.csdn.net/zhaohuihua/archive/2010/05/23/5617640.aspx 自己写的一个Java版俄罗斯方块程序 界面做的中规中矩,每种形状颜色都不相同 程序控制还可以,没什么大的Bug...

    Java+Swing+Mysql实现租户管理系统

    Java+Swing+Mysql实现租户管理系统 1、项目介绍: 该租户管理系统是具有登录,注册,添加租户,查询租户信息,修改租户信息,删除租户,修改密码,退出登录等模块的综合管理系统。 可以添加租户信息,包括编号,姓名...

    跟我学JavaSwing之游戏设计.doc

    Java咖啡馆以前介绍过AWT的知识,那么Swing和AWT究竟有什么区别呢?学习Java的 人都可能听到或看到过重量级控件和轻量级控件这个字眼,AWT就是我们通常所指的重量 级控件,Swing则是轻量级控件。我们都知道Java的...

    Java学习指南(Swing入门篇)

    ☆ Java程序员居家旅行必备课程 ☆Java学习指南系列的第3篇,承接高级语法篇,介绍基于Java Swing的GUI界面程序开发的技术。Swing系列教程分为两篇:(1) Swing入门篇 (2) Swing高级篇。通过本篇的训练,学员可以较...

Global site tag (gtag.js) - Google Analytics