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. 1.5、CDH 搭建Hadoop在安装之前(定制安装解决方案)

    Cloudera托管两种类型的软件存储库,您可以使用它们来安装诸如Cloudera Manager或CDH-parcel存储库和软件包存储库之类的产品. 在大多数情况下,这些存储库是有效的解决方案,但 ...

  2. U3D组件------CharacterController(角色控制器)

    角色控制器中有碰撞体和刚体的属性 Slope Limit:角色能爬的斜坡的坡度限制 Step Offset:角色走台阶的高度 Skin Width:当场景里面出现多个角色控制器的时候,两个对象在接触的 ...

  3. CSS实现禁止文字选中

    E10平台预览第四版中包含了对 CSS3 新属性 -ms-user-select 的支持,Web 开发人员可以利用这一新属性轻松精确的控制用户可以在网站上选择哪些文本. user-select:non ...

  4. C#实现将字符串作为表达式运算

    转载:http://blog.csdn.net/lifeforcode/article/details/2010807 曾经有个需求,要把一段字符串作为C#的一段语句来执行.说实在了,就类似实现计算器 ...

  5. I/O复用之select

    作用: 实现I/O的多路复用 该函数允许进程指示内核等待多个事件中的任何一个发生,并只有在一个或多个事件发生时或经历一段指定的时间后才唤醒它.进程将于select处阻塞,直到被检测的描述符有一个或多个 ...

  6. Jenkins+sonar7.3集成

    Jenkins安装请参考:https://blog.csdn.net/CheNorton/article/details/50327825?utm_source=copy Jenkins更新请参考:h ...

  7. javaWEB登录ajax传值

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  8. linux防火墙使用以及配置

    Centos 7 firewall : 1.firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态 ...

  9. 交叉编译libudev

    一.交叉编译libudev下载udev-182.tar.xz 下载网址:https://mirrors.edge.kernel.org/pub/linux/utils/kernel/hotplug/ ...

  10. android闪退日志收集

    写一个工具类,然后直接引用,简单粗暴. package com.socialsecurity.main.exception; import java.io.File; import java.io.F ...