Java的GUI编程(Graphic User Interface,图形用户接口),是在它的抽象窗口工具箱(Abstract Window Toolkit,AWT)上实现的,java.awt是AWT的工具类库,其中包括了丰富的图形、用户界面元件和布局管理器的支持。

  GUI主要用在两个地方:

  ◆Application;

  ◆Applet.

  1)GUI界面:

  在Java GUI中,用户与程序之间交互的一个控制面板,其内包含有菜单,控件(或组件),容器并能响应用户的事件。

  现在有各种各样的窗口系统,不同的窗口系统提供给程序设计的程序库是大不一样的,例如,基于Windows的SDK,和基于Unix平台的X Windows的Xlib.

  为了使程序能在不同的窗口系统下运行,Java提出了“抽象窗口系统”的概念,提供了AWT(抽象窗口工具箱),使得Java能够在不同的窗口系统下运行。

  2)Java中的GUI实现方式:

  采用AWT(抽象窗口工具集)从而可使Java GUI适用于不同OS的环境,打造多系统的用户界面。

  特点如下:

  ① 其具体实现由目标平台下的OS来解释,从而导致Java GUI在不同平台下会出现不同的运行效果(窗口外观、字体等的显示效果会发生变化)。

  ② 组件在设计时不应采用绝对定位,而应采用布局管理器来实现相对定位,以达到与平台及设备无关。

  3)新增的Java Swing GUI组件

  AWT组件以及事件响应不及微软的SDK丰富(因为有些OS平台无微软的Windows组件),Sun在Java2中新增了Swing GUI组件。但是,AWT比较简单,功能也能满足大多数用户界面需求,特别在Java Applet的设计中受到了普遍的应用。同时,这个讨论也为我们进一步研究Swing GUI组件打下了比较扎实的基础。

GUI用户界面编程的更多相关文章

  1. Java图形用户界面编程

    1.Java图形用户界面编程概述 JavaAPI中提供了两套组件用于支持编写图形用户界面:AWT(抽象窗口包)和Swing 2.  容器(Container):重量级容器和轻量级容器(一个容器可以放置 ...

  2. C++ GUI Qt4编程-创建自定义窗口部件

    C++ GUI Qt4编程-创建自定义窗口部件   Qtqt4 通过Qt窗口部件进行子类化或者直接对QWidget进行子类化,就可以创建自定义窗口部件,下面示范两种方式,并且也会说明如何把自定义窗口部 ...

  3. I/O系统,多线程、图形用户界面编程

    多线程 进程与线程区别: 进程需要分配独立的内存空间:线程在同一内存空间中工作,可以共享同一块内存和系统资源 与Java相关的API: 1)Thread类 方法:start()启动: urn() : ...

  4. C++ GUI Qt4编程(10)-3.4spreadsheet

    1. C++ GUI Qt4编程第三章,增加spreadsheet. 2. spreadsheet.h /**/ #ifndef SPREADSHEET_H #define SPREADSHEET_H ...

  5. C++ GUI Qt4编程(09)-3.3spreadsheet-toolbar

    1. C++ GUI Qt4编程第三章,增加工具栏.状态栏和快捷键. 2. mainwindow.h /**/ #ifndef MAINWINDOW_H #define MAINWINDOW_H #i ...

  6. C++ GUI Qt4编程(08)-3.2spreadsheet-resource

    1. C++ GUI Qt4编程第三章,图片使用资源机制法. 2. 步骤: 2-1. 在resource文件夹下,新建images文件,存放图片. 2-2. 新建spreadsheet.qrc文件,并 ...

  7. C++ GUI Qt4编程(07)-3.1menu

    1. C++ GUI Qt4编程第三章,添加menu菜单. 2. mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include < ...

  8. C++ GUI Qt4编程(03)-1.3layout

    1. 根据C++ GUI Qt4编程(第二版)整理2. 系统:centos7:  Qt版本:5.5.13. 程序:layout.cpp #include <QApplication> #i ...

  9. C++ GUI Qt4编程(02)-1.2quit

    1. 根据C++ GUI Qt4编程(第二版)整理2. 系统:centos7:  Qt版本:5.5.13. 程序:quit.cpp #include <QApplication> #inc ...

随机推荐

  1. 你不要用战术上的勤奋掩盖战略上的懒惰by雷军

    这个问题很有趣. 战略.战术.勤奋.懒惰,我们拆开来看吧,虽然我觉得其实分析一个人说话是为什么是很没有意义的事情.我们要先了解一下,公司的组织中,谁是指定战略的,谁是指定战术的.公司战略和战术意味着什 ...

  2. HTML5 UI框架Kendo UI Web自定义组件(一)

    Kendo UI Web包含数百个创建HTML5 web app的必备元素,包括UI组件.数据源.验证.一个MVVM框架.主题.模板等.在Kendo UI Web中如何创建自定义组件呢,在下面的文章中 ...

  3. 删除已经配置的类库和移除CocoaPods[转]

    转自:http://blog.csdn.net/jymn_chen/article/details/19213601 引言 在使用CocoaPods(一)为项目配置第三方类库我们使用CocoaPods ...

  4. window resize的时候禁止频繁触发事件

    $(window).resize(function(){ var value=+new Date; assistantForSyncTask.execute(value); assistantForA ...

  5. 【Office Word】论文排版有关技巧

    本文分两部分,第一部分呢是Word中标题的编号以及图表的编号:第二部分是MathType中公式编号的右对齐方法.   1. word中标题的编号以及图表的编号   本部分转载自:http://blog ...

  6. 为linux系统添加虚拟内存swap分区

    阿铭linux学习笔记之swap分区 一.作用: swap分区是交换分区,在系统物理内存不足时与swap进行交换,对web服务器的性能影响极大,通过调整swap分区大小来提升服务器的性能,节省资源费用 ...

  7. iOS 编码规范

    Coding Guidelines for Cocoa https://developer.apple.com/library/prerelease/content/documentation/Coc ...

  8. Javascript 学习

    title: Javascript tags: javascript,学习 grammar_cjkRuby: true --- 定义变量 三种形式 var name; var name = " ...

  9. End Routine

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  10. 【转】IP分片和TCP分段

    ZC: 由于 TCP中 MSS 的关系,TCP 不会造成 IP分片和TCP分段 ! 1.http://zhidao.baidu.com/link?url=YCnR8B-1EN4-cgauRtwa-iV ...