Java界面编程—API
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的更多相关文章
- Java界面编程-建立一个可以画出图形的简单框架
引子:总共使用3个.java文件,建立一个简单界面编程的框架. 第1个文件:NotHelloWorldComponent.java //NotHelloWorldComponent.java 1 im ...
- 【TCP/IP】之Java socket编程API基础
Socket是Java网络编程的基础,深入学习socket对于了解tcp/ip网络通信协议很有帮助, 此文讲解Socket的基础编程.Socket用法:①.主要用在进程间,网络间通信. 文章目录如下: ...
- Java界面编程—事件监听机制
组件首先要先注册事件处理器,当用户单击组件.移动鼠标或者敲击键盘时都会产生事件(Event),一旦有时间发生,应用程序就会做出对该事件的响应,这些组件就是事件源(Event source). 接受.解 ...
- java界面编程(3) ------ 控制布局
本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 在java 中,组件放置在窗口上的方式可能与其它的GUI系统都不同样.首先,它全 ...
- Java 界面编程【03】事件监听
当你把界面都设计好了,总需要添加相应的执行动作给组件,在JAVA中有相应的时间处理机制,叫做“监听器”,给组件添加相应执行动作的过程叫做“注册”,其中的“监听器”是一个接口,里面包含了相应的执行函数, ...
- Java 界面编程【02】事件注册
聪明出于勤奋,天才在于积累.——华罗庚 对上次的三个问题的个人理解: 1) 程序首先是从main函数开始执行的,假设main 函数不是 static ,就要先实例化这个类,然后调用 main 方法,这 ...
- Java界面编程—事件的种类
Java处理事件相应的类和监听接口大多位于 awt 包中. 在 java.swing.event 包中有专门用于 swing 组件的事件类和监听接口. awt 事件类继承自 AWTEvent,其超类是 ...
- Java界面编程—布局管理
布局是指容器中组件的排列方式 常用的布局管理器 布局管理器名称 所属类包 说明 FlowLayout(流式布局) java.awt 组件按照加入的先后顺序.按照设置的对齐方式从左向右排列,一行排满后到 ...
- java界面编程(8) ------ 组合框(下拉列表)
本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 与一组单选button的功能类似,组合框(下拉列表)也是强制用户从一组可能的元素 ...
随机推荐
- com.android.dx.command.Main with arguments
Error:Execution failed for task ':jingyeyun:transformClassesWithDexForDebug'.> com.android.build. ...
- MySql union与order by
[MySql union与order by] 如果您想使用ORDER BY或LIMIT子句来对全部UNION结果进行分类或限制,则应对单个地SELECT语句加圆括号,并把ORDER BY或LIMIT放 ...
- Link & Redirect
[Link] Link标签,用于实现React-Router功能的跳转.(意思是就不要使用a标签了) 1)to:string,指明要跳转的path. import { Link } from 'rea ...
- 命令行执行jenkins,构建job(可传递参数)
背景| 组内做UI测试,需要每天晚上执行一遍jenkins任务,jenkins任务本身是参数化构建的.但是因为jenkins本身的定时执行没有办法指定特殊的参数,所以考虑使用命令行方式启动jenkin ...
- Jmeter使用HTTP代理服务器进行录制
1.添加一个线程组 2.在工作台右键添加HTTP代理服务器 3.配置代理服务器 *注:端口号不能被占用.排除模式中添加的东西将在录制时不被录制上. 端口可能会有被占用的情况,这种情况下点击启动会报错, ...
- kafka消息队列的简单理解
kafka在大数据.分布式架构中都很流行.kafka可以进行流式计算,也可以做为日志系统,还可以用于消息队列. 本篇主要是消息队列相关的知识. 零.kafka作为消息队列的优点: 分布式的系统 高吞吐 ...
- poj 1789 prime
链接:Truck History - POJ 1789 - Virtual Judge https://vjudge.net/problem/POJ-1789 题意:先给出一个n,代表接下来字符串的 ...
- mycat配置实现mysql读写分离
需要先把mysql的主从复制配置好,然后才可以开始mycat的配置 m ysql主从复制配置:https://www.cnblogs.com/renjianjun/p/9093062.html myc ...
- 不通过调用__Init__来创建实例
老样子,抛出个问题,我们想要创建一个实例,但是由于某些原因想绕过__init__方法,用别的方式来进行创建. 举个栗子 小贱贱反序列化数据,或者说实现一个类方法将其作为备选的构造函数,都属于这种情况. ...
- js replaceAll全部替换
js不支持replaceAll,可以用函数new RegExp('要替换的内容','g')代替, 代码: str.replace(new RegExp('要替换的内容','g'),"替换内容 ...