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. CodeForces 433C Ryouko's Memory Note-暴力

                                             Ryouko's Memory Note Time Limit:1000MS     Memory Limit:262 ...

  2. request操作的几个容易混淆的请求路径

    假定你的web application 名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果 ...

  3. 排序+逆向思维 ACdream 1205 Disappeared Block

    题目传送门 /* 从大到小排序,逆向思维,从最后开始考虑,无后向性 每找到一个没被淹没的,对它左右的楼层查询是否它是孤立的,若是++,若不是-- 复杂度 O(n + m),还以为 O(n^2)吓得写了 ...

  4. MVC RenderSection

    简要使用介绍 @RenderSection在母版页中占个位,然后让使用此母版页的子页自己去呈现他们的Section. 在母版页_Layout.cshtml中定义@RenderSection(" ...

  5. Viola Jones Face Detector

    Viola Jones Face Detector是Paul viola 和 Michael J Jones共同提出的一种人脸检测框架.它极大的提高了人脸检测的速度和准确率. 速度提升方面:利用积分图 ...

  6. BZOJ4134 : ljw和lzr的hack比赛

    设$f[x]$为$x$子树里的子游戏的sg值,$h[x]$为$x$所有儿子节点$f[x]$的异或和,则: $f[x]=mex(y到x路径上所有点的h的异或和\ xor\ y到x路径上所有点的f的异或和 ...

  7. BZOJ3570 : DZY Loves Physics I

    考虑两个质量均为m,速度分别v1.v2的小球发生完全弹性碰撞的影响: 由动能守恒得: $\frac{1}{2}mv_1^2+\frac{1}{2}mv_2^2=\frac{1}{2}mv_1'^2+\ ...

  8. C++做client Java做客户端传送数据

    因为要用到,但发现Java怎么都收不到C发来的数据,除非C端自动挂掉,java会一口气全收回来. 后来才发现是因为C发过来的Java用readline是读不到回车的,所以会一直等待. 所以不要用rea ...

  9. Designing CSS Layouts With Flexbox Is As Easy As Pie

    This article is an updated excerpt of the chapter “Restyle, Recode, Reimagine With CSS3″ from our Sm ...

  10. objective-c 条件运算符

    条件运算符 val1!=0 ? val1:val2 等价于 val1?val2