Java 的 GUI 提供的对象都存在 java.awt 和 java.swing 两个包中。

awt :Abstract Window ToolKit(抽象窗口工具包),需要调用本地系统方法实现功能,属重量级控件(跨平台不够强)

swing:在 awt 的基础上,建立的一套图形系统,其中提供了更多的组件,并且完全由 java 实现,增强了可移植性,属于轻量级控件(跨平台很好)

SWT:The Standard Widget Toolkit(标准部件工具包),是 Eclipe 提供的一个开源的 GUI 编程框架。(http://www.eclipse.org/swt/

Swing基本框架

图形化设计步骤

1. 创建顶层容器

对应于程序的初始显现窗口,窗口中放入其他菜单、工具栏、文本框、按钮等组件。

顶层容器是图形化界面显示的基础,其他所有组件(控件)都是直接或者间接在顶层容器中的。

Java 中,顶层容器有三种:JFrame(框架窗口、即通常的窗口)、JDialog(对话框)、JApplet(用于设计嵌入在网页中的Java小程序)

2. 创建中间容器、组件

对应于程序中出现的菜单、工具栏(中间容器)、文本框、按钮、单选框、复选框等组件。

3. 将组件加入到容器中

在 Java 中创建组件后,还需要将组件放入到相应的容器中,才能在顶层容器,如窗口中显示出组件。

4. 设置容器内组件的位置

组件添加到容器中,还必须设置好组件的显示位置,一般有两种方法来设置组件的显示位置:1)使用布局管理器来管理组件在容器中的位置;2)按照与容器的相对距离(以像素为单位),精确控制组件的位置

5. 处理组件所产生的事件

即用户执行选择菜单、单击按钮等操作时,就要执行相应的命令,进行相关的程序处理,这就需要设置组件的响应动作。

容器的使用

Java 中容器包含顶层容器和中间容器。设计图形化程序必须要有顶层容器

顶层容器是容纳其他组件和中间容器的基础,即设计图形化程序必须要有顶层容器。
JFrame //
JDialog //
JApplet //
中间容器是可以包含其他相应组件的容器,但是中间容器和组件一样,不能单独存在,必须依附于顶层容器。常见的中间容器有:
JPanel // 最灵活、最常用的中间容器。
JScrollPane // 与 JPanel 类似,但还可在大的组件或可扩展组件周围提供滚动条。
JTabbedPane // 包含多个组件,但一次只显示一个组件,用户可以在组件之间方便的切换。
JToolBar // 按行或按列排列的一组组件,通常是按钮

组件的使用

Swing中的UI组件

JApplet  // Java.applet.Applet类的扩展,它含有JRootPane的一个实例
JButton // 能显示文本和图形的按钮,它是AWT按钮组件的替代组件
JCheckBox // 能显示文本和图形的复选框,它是AWT选择组件的替代组件
JCheckBoxMenuItem // 一个复选框菜单项,它是AWT的复选框菜单项组件的替代组件
JComboBox // 带下拉列表的文本框,它是AWT选择组件的替代组件
JComponent // 所有轻量J组件的基类
JDesktopPane // 内部窗体的容器
JDialog // Swing对话框的基类,它扩展了AWT Dialot类
JEditorPane // 用于编辑文本的文本窗格
JFrame // 扩展java.awt.Frame的外部窗体
JInternalFrame // 在JDesktopPane中出现的内部窗体
JLabel // 可显示文本和图标的标签,它是AWT标签组件的替代组件
JLayeredPane // 能够在不同层上显示组件的容器
JList // 显示选项列表的组件,它是AWT列表组件的替代组件
JMenu // 菜单条中显示的一个菜单,它是AWT菜单组件的替代组件
JMenuBar // 用于显示菜单的菜单条,它是AWT菜单条组件的替代组件
JMenuItem // 菜单项,它是AWT菜单项组件的替代组件
JOptionPane // 显示标准的对话框,如:消息和问题对话框
JPanel // 通用容器,它是AWT面板和画布组件的替代组件
JPasswordfield // JTextField的扩展,使输入的字符不可见
JPopupMenu // 弹出式菜单,它是AWT弹出式菜单组件的替代组件
JProgressBar // 进度指示器
JRadioButton // 单选按钮,它是AWT复选框组件的替代组件
JRootPane // 顶层容器,它包含一个玻璃窗格,一个层窗格,一个内容窗格和一个可选的菜单条
JScrollBar // 滚动条,它是AWT滚动条组件的替代组件
JScrollPane // 滚动窗格,它是AWT滚动窗格组件的替代组件
JSeparator // 水平或垂直分隔条
JSlider // 滑杆
JSplitPane // 有两个分隔区的容器,这两个分隔区可以水平排列或者垂直排列且分隔区的大小能自动调整
JTabbedPane // 带选项卡的窗格
JTable // 表格
JTableHeader // 表格头
JTextArea // 用于输入多行文本的文本域,它是AWT文本域组件的替代组件
JTestComponent // 文本组件的基类,它替代AWT的TextComponent类
JTextField // 单行文本域,它替代AWT的单行文本域组件
JTextPane // 简单的文本编辑器
JToggleButton // 两种状态的按钮,它是JCheckBox和JRadioButton组件的基类
JToolBar // 工具条
JToolTip // 当光标停留在一个组件上时,该组件上显示的一行文字
JTree // 用于按钮层次组织数据的结构控件
JViesport // 用于浏览可滚动组件的视口
JWindow // 外部窗口,它是java.awt.Window的扩展

实战练习参考:https://www.cnblogs.com/1693977889zz/p/8377461.html

java.awt 包

public class Color extends Object implements Paint, Serializable  //
public class Container extends Component //
public class FlowLayout extends Object implements LayoutManager, Serializable //

java.swing 包

public interface Action extends ActionListener  //
public class JButton extends AbstractButton implements Accessible //
public class JDialog extends Dialog implements WindowConstants, Accessible, RootPaneContainer //
public class JFrame extends Frame implements WindowConstants, Accessible, RootPaneContainer //

java.util 包

public interface EventListener  // 表示接口,所有事件监听器接口必须继承该接口

java.awt.event 包

public class ActionEvent extends AWTEvent  //
public interface ActionListener extends EventListener //

Java界面编程—API的更多相关文章

  1. Java界面编程-建立一个可以画出图形的简单框架

    引子:总共使用3个.java文件,建立一个简单界面编程的框架. 第1个文件:NotHelloWorldComponent.java //NotHelloWorldComponent.java 1 im ...

  2. 【TCP/IP】之Java socket编程API基础

    Socket是Java网络编程的基础,深入学习socket对于了解tcp/ip网络通信协议很有帮助, 此文讲解Socket的基础编程.Socket用法:①.主要用在进程间,网络间通信. 文章目录如下: ...

  3. Java界面编程—事件监听机制

    组件首先要先注册事件处理器,当用户单击组件.移动鼠标或者敲击键盘时都会产生事件(Event),一旦有时间发生,应用程序就会做出对该事件的响应,这些组件就是事件源(Event source). 接受.解 ...

  4. java界面编程(3) ------ 控制布局

    本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 在java 中,组件放置在窗口上的方式可能与其它的GUI系统都不同样.首先,它全 ...

  5. Java 界面编程【03】事件监听

    当你把界面都设计好了,总需要添加相应的执行动作给组件,在JAVA中有相应的时间处理机制,叫做“监听器”,给组件添加相应执行动作的过程叫做“注册”,其中的“监听器”是一个接口,里面包含了相应的执行函数, ...

  6. Java 界面编程【02】事件注册

    聪明出于勤奋,天才在于积累.——华罗庚 对上次的三个问题的个人理解: 1) 程序首先是从main函数开始执行的,假设main 函数不是 static ,就要先实例化这个类,然后调用 main 方法,这 ...

  7. Java界面编程—事件的种类

    Java处理事件相应的类和监听接口大多位于 awt 包中. 在 java.swing.event 包中有专门用于 swing 组件的事件类和监听接口. awt 事件类继承自 AWTEvent,其超类是 ...

  8. Java界面编程—布局管理

    布局是指容器中组件的排列方式 常用的布局管理器 布局管理器名称 所属类包 说明 FlowLayout(流式布局) java.awt 组件按照加入的先后顺序.按照设置的对齐方式从左向右排列,一行排满后到 ...

  9. java界面编程(8) ------ 组合框(下拉列表)

    本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 与一组单选button的功能类似,组合框(下拉列表)也是强制用户从一组可能的元素 ...

随机推荐

  1. mysql 删掉重复数据

    --不知道为啥这个mysql外边还要包一层,不然就报错DELETE FROM course WHERE name IN ( select mm.name from ( SELECT a.name as ...

  2. 对于“2017面向对象程序设计(Java)第就十周学习总结”存在问题的反馈

    1.“学生们普遍反映对泛型相关知识点的理解有一些难度,而且对泛型有关程序的编写有些困难.希望老师再次讲解.同学们普遍反映第四.第五个实验较难,大部分同学不能独立完成实验,希望老师能在课堂上详细解答.根 ...

  3. php 5.3.10 cli 模式加载php_openssl.dll

    问题描述: 开启php_openssl.dll,仍提示php_openssl.dll required/Not found 原因:可能是php的版本跟php_openssl.dll的版本不一样 具体排 ...

  4. appium自动化测试之UIautomatorviewer元素定位

    appium自动化测试之UIautomatorviewer元素定位 标签(空格分隔): uiautomatorviewer元素定位 前面的章节,已经总结了怎么搭建环境,怎样成功启动一个APP了,这里具 ...

  5. GreenDao-自定义SQL查询-AndroidStudio

    /** * 功能:员工查询 * 方法参数: * strEmpIdOrEmpName:员工ID 或者 员工名称 * strQueryType:员工查询类型 "0": "员工 ...

  6. 修改app工程名 Android Studio

    1.关掉AndroidStudio,在原项目最外层文件夹和内部xxx.iml上直接重新命名, 2.然后重新打开AndroidStudio,加载项目, 3.最后

  7. git图片

  8. 全国高校绿色计算大赛 预赛第一阶段(C++)第2关:扔桃子

    挑战任务 动物园有一只小猴子喜欢吃桃子,不过它有个很独特的习惯,每次都把找到的桃子分成相等的两份,吃掉一份,留一份.如果不能等分,小猴子就会丢掉一个然后再分.第二天再继续这个过程,直到最后剩一个桃子了 ...

  9. HDU-1459.非常可乐(BFS )

    这道题TLE了很多次,原来一直以为将数字化为最简可以让运算更快,但是去了简化之后才发现,真正耗时的就是化简....还和队友学到了用状态少直接数组模拟刚就能过... 本题大意:给出可乐的体积v1,给出两 ...

  10. FZU2150 :Fire Game (双起点BFS)

    传送门:点我 题意:“#”是草,"."是墙,询问能不能点燃俩地方,即点燃俩“#”,把所有的草烧完,如果可以,那么输出最小需要的时间,如果不行输出-1 思路:暴力BFS,看到n和m都 ...