java GUI编程总结
来源:互联网 发布:3322域名更新 编辑:程序博客网 时间:2024/06/05 15:29
java GUI 两个包:java.awt和java.swing
awt:
abstract window toolkit(抽象窗口工具集)
需要调用本地系统(如:window)方法实现。
为了减少平台不同而导致的图像差异,后来出现了swing
swing:
在awt基础上,建立一套图形界面系统,提供更多组件,完全由java实现,增强移植性,属轻量级控件
布局
1流式布局:按顺序布局 ;2边界布局:必须指定其方向,在相应的方向边界布局,没有指定方向则填充。3.格子布局:网格式布局,组件在小格子布局。4.网格包布局:一个组件占多个格子。5.卡片布局:按钮与内容相连,看起来像卡片。6.坐标式布局:想放哪就放哪。
事件监听机制
1. 事件源
2. 事件(event)
3. 监听器(Listener)
4. 事件处理(引发事件后处理方式)
我们按照上面的监听机制来分析下面的一段代码:package lgh.gui;import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class FrameDemo {/** * @param args */public static void main(String[] args) {Frame f = new Frame("QQ");//多起了一个线程//f.setSize(500, 400);//f.setLocation(400, 150);f.setBounds(400,200,500,400);f.setLayout(new FlowLayout());//设置流式布局,默认为边界布局Button but = new Button("一个按钮");f.add(but);//将按钮添加到窗体中f.addWindowListener(new WindowAdapter(){@Overridepublic void windowClosing(WindowEvent e) {// TODO Auto-generated method stubsuper.windowClosing(e);System.exit(0);}});//在按钮上加一个监听but.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("button run .........");}});f.setVisible(true);System.out.println("over");}}1.由主函数打印完了“over”,程序依然没有停止可以得到其实在new Frame()的时候启动了一个线程。
2.创建fram,设置框的大小,在显示屏上的位置,再设置布局方式。
3.再创建一个按钮,把按钮添加到窗体中。
4.为窗体添加一个事件地监听者,f.addWindowListener(),函数里面的参数就是事件监听者对象,对应着各种事件,这里由于要点击窗体的关闭按钮,所以传入里面的监听者应该是接口WindowListener,本应在创建匿名内部类时要实现接口里面的抽象方法,但是这里只需实现一个方法,所以找实现了接口的类作为父类再覆盖需要的方法。为了方便使用,所以接口加了一个实现类WindowAdapter,(一般当接口超过两个抽象方法时都会有一个实现了方法的适配器类(Adapter)用来方便调用) 所以有:
f.addWindowListener(new WindowAdapter(){@Overridepublic void windowClosing(WindowEvent e) {// TODO Auto-generated method stubsuper.windowClosing(e);System.exit(0);}});
5.事件处理:覆盖的方法就是当点击关闭按钮时调用的方法,方法体就是事件处理的内容。而windowClosing(WindowEvent e)中的参数e就是所发生的事件,把事件打印出来System.out.println(e);得到:sun.awt.TimedWindowEvent[WINDOW_CLOSING,opposite=null,oldState=0,newState=0] on frame0
6.监听器并不是监听所有的事件,只有相应的监听器才监听相应的事件,比如鼠标监听器MouseAdapter()监听鼠标事件,键盘监听器监听键盘事件。
再把整个方法调用流程梳理一下吧(以按钮所添加的监听器为例):
前提:一个按钮添加了动作监听器but.addActionListener(),并实现了相应方法。(见上述代码)
过程:当点击按钮时,系统会调用new ActionListener()实例中的actionPerformed()方法(new ActionListener.actionPerformed)并在该方法中传入参数ActionEvent e,而这个参数就是事件对象,这个事件对象所对应的类包含事件地一些信息和方法(如事件为点击鼠标,这个对象包含鼠标的信息包括右击还是左击,点击的次数,而相应的方法有获取点击次数等等)。方法体就是对事件做出了处理,响应。
0 0
- java GUI编程总结
- java GUI编程总结图
- java GUI编程小总结
- Java总结之GUI编程
- GUI界面编程总结
- GUI编程总结
- 黑马程序员——java编程GUI基础总结
- 黑马程序员-Java基础总结12——GUI编程
- 黑马程序员 java基础24天 GUI编程学习总结
- 黑马程序员—Java编程知识GUI知识总结
- JAVA语言GUI编程之布局管理器总结
- java语言GUI编程之鼠标适配器总结
- java语言GUI编程之鼠标适配器总结2
- java语言编程GUI之Window事件经典总结
- Java基础学习总结(23)——GUI编程
- java基础学习总结——GUI编程(二)
- java基础学习总结——GUI编程(一)
- java基础学习总结——GUI编程(一)
- android 数据库版本升级
- 微信公共平台开发接口(二)
- ARP在同一网关和不同网关之间传输中的区别
- 用xmanager 远程连接linux图像界面的几种方法
- const限定符
- java GUI编程总结
- Android 系统联系人相关URI
- Binary Tree Inorder Traversal
- 自己动手写printf -- 库函数printf的实现
- TotalCommander和Everything的结合设置
- 图的BFS和DFS学习笔记
- 最佳编程语录---好的代码自己本身就是最好的文档
- android蓝牙(二)——接收数据
- 我也来开发2048之终极奥义