AWT(abstract Window Toolkit)

AWT是java发布的第一个图形界面库。AWT通过调用系统本地的库,来创建和显示控件。

AWT 的组件都是使用的native code来编写的。所以AWT 的组件扩展性不够好。现在人们更愿意使用swing。

但是AWT依然起作用。它负责为Swing提供事件处理机制,输入管理,键盘焦点管理等等。

Java 2D
Swing是建立在Java 2D库和AWT之上的,Java 2D 用来绘制Swing组件。当你使用一个Swing组件时,在内部,是通过调用Java 2D API来绘制的。
当然,你也可以使用Java 2D API来绘制你自己定制的组件。

Swing

Swing 的出现并不是为了取缔AWT,因为他本身也依赖AWT。Swing组件是通过java2D绘制(画出来的)的,所以界面较AWT更加美观,并且与本地组件的风格不同。

Swing组件绝大多数都是用java编写的(除了JFrame,JDialog,JWindow,JApplet),这就意味着,我们可以根据自己的需要,来扩展他们。

Swing 的特点
    
轻量级            Swing组件是独立于本地OS的,因为绝大部分的Swing控件都使用纯java编写,而不是在底层调用本地OS的API。
丰富的控件     SWING提供了丰富的高级控件:Tree,TabbedPane, slider, colorpicker, table 等控件。
高度自定义     正因为Model和View分离开的MVC架构模式,使得Swing控件可以被轻松的扩展为自定义样式的组件。
热拔插式的主题感官    Swing 应用程序的感官可以在运行时任意切换。

Swing的MVC框架模式

Model:        代表了组件的数据。如Button的颜色,长,宽等都是内部用字段来存储的数据。
View:          代表了可显示的组件。它一定程度上反映了组件的内部数据。如JLabel显示文本。
Controller:  获取到用户从视图组件输入的数据,然后反映到组件的Model层,从而更新组件的数据,组件内部数据的更新,往往又会通过Controller
                   来反应到View层。以此来达到交互的目的。

 Swing的整体类结构

Component

Component为Swing中不包含菜单的UI控件提供了抽象基础。Component代表了图形对象。

Container

Container代表了一个可以容纳其他Swing组件的组件。

JComponent

JComponent对象是所有Swing UI组件的基类。

框架   

JFrame:窗体

Dialog:对话框

UI 控件

JLabel

用于显示普通的文本

JButton

带文本或者图像的普通按钮

JCheck Box

复选框:勾选或者不勾选2中状态

JRadioButton

单选按钮:选中此选项或者选择其他。通常多个单选按钮为一组

JTextField

单行文本输入框

JPasswordField

单行密码输入框,密文显示

JTextArea

多行多列文本输入域

JList

可滚动的文本项目显示列表

JComboBox

A JComboBox component presents the user with a to show up menu of choices.

ImageIcon

实现了Icon接口的组件。用来显示Icon图像。

JScrollbar

滚动条。使用户能通过滚动条来改变基于一个范围的值。如音量,图片的放大或者缩小程度。

JOptionPane

各种类型的对话框,提供消息提示。

JFileChooser

文件或者文件夹选择对话框

JColorChooser

颜色选择面板

JProgressBar

显示了程序执行某项工作的进度百分比

JSlider

A JSlider lets the user graphically select a value by sliding a knob within a bounded interval.

JSpinner

A JSpinner is a single line input field that lets the user select a number or an object value from an ordered sequence.

布局管理器

BorderLayout

描述待补充
FlowLayout 描述待补充
BoxLayout 描述待补充
CardLayout 描述待补充
GridLayout 描述待补充
GridBagLayout 描述待补充
GroupLayout 描述待补充
SpringLayout 描述待补充

其他

java.awt.Color:基本颜色定义
java.awt.Font:基本字体定义
java.awt.Cursor:光标操作定义

【Swing】Swing初步认知的更多相关文章

  1. JAVA8 in Action:行为参数化,匿名类及lambda表达式的初步认知实例整理

    import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.functio ...

  2. C++ STL 的初步认知

    学无止境!!!    尊重他人劳动,尊重出处:http://www.cnblogs.com/shiyangxt/archive/2008/09/11/1289493.html 我已经做了4年的MFC ...

  3. 【Java学习笔记之二十五】初步认知Java内部类

    可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二). 第一次见面 内部类我们从外面 ...

  4. Servlet初步认知

    1 背景概述 在近期的公司项目开发的过程中,笔者初步学习Servlet的开发.配置与使用,本文主要介绍了Servlet的相关概念以及优势说明并附上笔者开发简单样例.今天将笔者学习的心得总结出来与大家分 ...

  5. 初步认知java的方法

    1.正确区分函数和方法: 面向对象的语言叫做方法,面向过程的语言叫做函数,两者的意义是一样的,只是叫法不同.java是面向对象的语言,所以用方法. 2.方法的定义: 就是有名字的代码段 3.方法的目的 ...

  6. Java网络通信初步认知

    本文转载自:http://wing011203.cnblogs.com/ 在这篇文章里,我们主要讨论如何使用Java实现网络通信,包括TCP通信.UDP通信.多播以及NIO. TCP连接 TCP的基础 ...

  7. 初步认知MySQL metadata lock(MDL)

    http://blog.itpub.net/26515977/viewspace-1208250/ 概述 随着5.5.3引入MDL,更多的Query被“Waiting for table metada ...

  8. MYSQL存储过程初步认知

    存储过程(Stored Procedure): 一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行. 优点:将重 ...

  9. 初步认知jQuery

    jQuery:是JavaScript的一个类库全写JavaScript query   write less do more JavaScript查询写的更少做的更多 第一步先导入js文件: < ...

随机推荐

  1. 模拟 POJ 2993 Emag eht htiw Em Pleh

    题目地址:http://poj.org/problem?id=2993 /* 题意:与POJ2996完全相反 模拟题 + 字符串处理:无算法,读入两行字符串找出相应点用used标记,输出时标记过的输出 ...

  2. BZOJ3075 : [Usaco2013]Necklace

    首先对b串做kmp求出nxt数组. 设f[i][j]表示考虑了a的前i个字符,在b中匹配到了j的最长长度,按照kmp算法直接转移即可. $ans=n-\max(f[n][j])$. 时间复杂度$O(n ...

  3. BZOJ3483 : SGU505 Prefixes and suffixes(询问在线版)

    将每个串正着插入Trie A中,倒着插入Trie B中. 并求出每个串在A,B中的dfs序. 每次查询等价于查询在A中dfs序在[la,ra]之间,在B中dfs序在[lb,rb]之间的串的个数,用主席 ...

  4. TYVJ 1011 NOIP 2008&&NOIP 2000 传纸条&&方格取数 Label:多线程dp

    做题记录:2016-08-15 15:47:07 背景 NOIP2008复赛提高组第三题 描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行 ...

  5. java web工程之Hibernate

    java web添加structs特性后再添加Hibernate特性,这可以通过右键工程->my eclipse出现工具条选中相应的条目,添加相应的属性, 添加完Hibernate后建立与数据库 ...

  6. excel表中内容如何反排列

    如题,我的意思是,比如excel表中有如下内容: 1.红色 2.黄色 3.蓝色 现在我需要一次性全部反向排列,变成 3.蓝色 2.黄色 1.红色 这不是纯数字排序,因为我序号不是自然数的等差数列,其中 ...

  7. SQL Server 错误:15023(创建对于用户失败)

    问题: 错误15023:当前数据库中已存在用户或角色 在把远程服务器上的数据库备份还原到本地机后, 给一个"登录"关联一个"用户"时(用户映射),发生错误:“错 ...

  8. node系列:琐碎备忘

    cmd 全局与本地路径 查看:默认 查看本地路径:npm config get cache,默认和nodejs安装目录同一目录 查看全局路径:npm config get prefix,默认c盘app ...

  9. mysql主从复制 主主复制 读写分离

    首先是mysql的主从复制很简单 主主复制也就是互相主从最麻烦的最难的就是日志恢复,增量恢复什么的比较复杂 首先如果你不会安装mysql版本最好一样,或者往上的版本,因为mysql是向下兼容 请注意不 ...

  10. linux mysql服务器迁移

    服务器即将过保,重新申请了一台虚机,折腾了一下数据库的迁移.以下是主要步骤: 1.在windows上用navicat把数据和结构转储成sql文件 2.在mysql官网上下载rpm的压缩包 3.使用se ...