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
分享到:
相关推荐
- `JFrame`: 是Swing中的顶级容器,用于承载其他组件,构建应用的基本框架。 - `JPanel`: 作为内容区域,可以包含多个组件,方便布局管理。 - `JScrollPane`: 用于添加滚动条,当组件内容超出可视范围时自动显示...
综上所述,"swing组件介绍(一)"可能会涵盖Swing的基本概念、核心组件、布局管理、事件处理以及一些实用工具类,帮助初学者理解Swing在开发Java桌面应用中的重要性和用法。对于深入学习Swing,开发者还需要了解高级...
本篇文章将深入探讨Swing组件的基本知识,以及如何利用它们在J2EE开发中创建简单游戏和应用程序。 首先,Swing组件库包含了各种控件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、...
Swing之JTable的详细介绍,其基本用法及源码例子
【Swing组件详解】 Swing是Java编程语言中用于创建图形用户界面(GUI)的一个库,它是Java Foundation Classes (JFC)的一部分。在早期的Java版本(如JDK 1.0和1.1)中,Abstract Window Toolkit (AWT)是主要的GUI...
本文将详细介绍如何使用Java Swing实现一个简单的数据库管理系统,该系统能够完成基本的增删改查操作。 #### 二、项目背景与目标 本项目旨在通过Java Swing构建一个用户友好的界面,实现对数据库的基本操作。主要...
本教程“JavaSwing 实例教程”旨在帮助初学者深入理解和掌握Swing的基本用法,通过实例化的教学方式,让学习者能够快速上手。 Swing 是Java AWT(Abstract Window Toolkit)的扩展,它提供了更现代、更丰富的组件,...
接下来,《精通Java Swing程序设计.chm》可能是一本深入的指南,它可能包含Swing高级特性的介绍,如模型-视图-控制器(MVC)设计模式在Swing中的应用,自定义组件的创建,以及Swing的国际化和可访问性支持。...
本书首先从Swing的基本组件讲起,详细介绍了JButton、JLabel、JTextArea等常见组件的用法和自定义,这些组件是构建用户界面的基础元素。通过学习,读者可以掌握如何创建基本的窗口应用程序,并对组件进行布局管理,...
Java Swing 是Java平台上用于构建图形用户界面...通过深入阅读《Java Swing》,开发者不仅可以理解Swing的基本概念,还能掌握构建专业级GUI应用的技巧。书中的实例代码和最佳实践对学习者来说是非常有价值的参考资料。
因此,本回答将依据标题和描述中提到的知识点展开,详细介绍Swing程序设计的基础概念、组件及其应用。 ### Swing程序设计基础 #### 1. 什么是Swing? Swing是一种用于构建图形用户界面(GUI)的Java类库,它是Java...
### Java Swing 知识总结学习笔记...通过以上的介绍,我们可以看到 Swing 提供了非常丰富的组件和功能,可以帮助开发者快速构建复杂的用户界面。理解 Swing 的基本结构和组件分类对于高效地开发 GUI 应用程序至关重要。
本章将详细介绍如何使用Swing进行桌面程序开发,特别适合初学者入门。 在Swing中,开发者可以创建窗口、面板、标签、按钮等各种UI元素,并处理用户交互事件。学习Swing的基本过程包括理解Swing的架构、组件使用、...
通过以上介绍,我们可以看到Swing提供了丰富的功能和灵活性,让开发者能够构建出符合用户需求的Java GUI应用。在实际开发中,了解并熟练运用这些知识点,能帮助我们高效地创建出美观且功能完善的用户界面。通过阅读...
1. **Chapter02**:通常这部分会介绍Swing的基础,如JFrame(顶级容器)、JComponent(所有Swing组件的基类)以及基本组件如JLabel、JButton、JTextField等的使用。 2. **Chapter04**:可能涵盖布局管理器,如...
在本教程中,将介绍 Swing 中超出基本组件和应用程序的一些方面。虽然这些研究领域更难学习和掌握,但它们更强大,可以让您创建更好的应用程序。本教程介绍的更高级的 Swing 概念是: 理解 JTable,以及它众多令人...
本书详细介绍了Swing的基本组件,包括JFrame、JButton、JLabel、JTextField、JTextArea、JComboBox等,这些组件是构建用户界面的核心元素。通过学习,你可以了解到如何添加、布局和定制这些组件,以满足不同需求。...
首先,我们要了解Fest-Swing的基本概念。它允许开发者通过模拟用户交互来测试Swing组件,如按钮点击、文本输入等。这样可以确保应用程序在实际使用中的行为符合预期。Fest-Swing的核心是它的`ApplicationTest`类,它...