`

Swing读书笔记

阅读更多

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
3
分享到:
评论

相关推荐

    Swing学习系列 -- Swing读书笔记目录

    这篇Swing读书笔记目录旨在帮助开发者更好地理解和掌握Swing的相关知识,通过阅读和学习,可以提升在Java GUI编程上的技能。 首先,Swing是Java Foundation Classes (JFC)的一部分,它是Sun Microsystems为Java平台...

    Java游戏编程读书笔记

    通过阅读《Java游戏编程读书笔记》这本书,你可以深入了解这些概念并学习如何将它们应用到实际项目中。文档中的内容可能涵盖了Java游戏开发的基本原理、代码示例、最佳实践以及常见问题的解决方案。通过深入学习和...

    Java读书笔记.pdf

    Java读书笔记.pdf Java读书笔记.pdf是关于Java编程语言的读书笔记,涵盖了Java的基础知识、语法、编程技术、应用场景等方面的内容。下面是从该文件中生成的相关知识点: 一、Java基础知识 * Java的历史发展:Java...

    JAVA核心2卷读书笔记

    从《Java 2 核心技术 卷 1:基础知识》的读书笔记中,我们可以提取出以下几个关键知识点: 1. **强类型语言**:Java要求所有变量在使用前必须声明其类型,这确保了程序的稳定性和类型安全。每个程序都必须包含至少...

    《Thinking+in+Java》读书笔记共38页.pd

    读书笔记通常会记录读者在学习过程中的理解、重点摘录以及对书本内容的个人见解,38页的笔记内容应该相当丰富,涉及了许多关键概念和实践技巧。 在"数据集"这一标签中,可能包含了书中关于数据结构和算法的部分,...

    Java学习笔记(必看经典)

    7. **Java Swing和JavaFX**:这两部分可能涉及GUI(图形用户界面)编程,如何使用组件创建窗口应用,如JButton、JFrame等。 8. **网络编程**:Java的Socket编程允许创建网络应用,包括客户端和服务器端的实现。 9....

    《JavaFx本质论》读书笔记1(1-2章)

    《JavaFx本质论》读书笔记1(1-2章)主要涵盖了JavaFX的基础知识和核心概念,这本书旨在深入解析JavaFX这一强大的GUI(图形用户界面)开发框架。JavaFX是Oracle公司推出的一种用于构建桌面应用、移动应用以及云计算...

    《Java 手机_PDA 程序设计入门》读书笔记

    J2ME 不使用AWT和SWING作为用户界面库的原因主要是因为这些库在资源有限的移动设备上效率低下。移动设备通常具有较慢的CPU、较小的内存,并且没有鼠标,而是依赖于触控屏幕和简单按钮进行交互。此外,小屏幕尺寸和...

    prictical java 中文版及其笔记

    配合"practicalJava读书笔记",读者可以更好地理解和消化书中的概念,笔记可能包括了作者的理解、实例代码、问题解答和实践经验分享,进一步巩固和拓展了理论知识。 学习《实用Java》中文版,不仅可以掌握Java编程...

    Java开发小技巧 有8个文档

    Java开发小技巧,这压缩包里面有8个文档,每一个文档是一个小技巧,其中也有包含一些...记事本读书笔记.txt Java Swing控件属性归纳.txt 单字符的截取.txt 位图按钮.txt 不用new生成随机数.txt 还有连个异常处理的txt

    JAVA2应用编程150例1-4

    7. **Swing和AWT**:作为Java的图形用户界面(GUI)工具包,Swing和AWT提供了许多组件(如按钮、文本框、面板等)用于创建桌面应用程序。通过实例可以学习如何布局、事件处理和交互设计。 8. **网络编程**:Java...

    进程管理系统(java程序+设计文档)

    这可能涉及到Swing或JavaFX库。 6. **日志和错误处理**:为了调试和追踪问题,系统会记录操作日志,并处理可能出现的异常,确保程序的健壮性。 7. **权限管理**:在某些情况下,启动或停止进程可能需要特定的权限...

    java超市管理系统(源代码+api帮助文档+打包的jar)

    9. **前端界面**:系统可能采用了Swing、JavaFX或现代的Web技术如HTML5、CSS3、JavaScript等构建用户界面,提供友好的交互体验。 10. **测试与调试**:在使用或修改源代码后,需要进行单元测试、集成测试和系统测试...

Global site tag (gtag.js) - Google Analytics