GUI---图形编程基础
来源:互联网 发布:斑马标签打印机软件 编辑:程序博客网 时间:2024/05/27 00:45
GUI—Java 图形用户接口
1:概念:java针对用户图形化操作提供的服务,封装了命令操作系统。
2:两个包:java.awt.*:早期提供的包,和系统关联较强,跨平台性不够好;
Java.swing.*:纯java编写的扩展包,移植性强
3:GUI体系结构:
容器组件:是可以存储基本组件和容器组件的组件。
基本组件:是可以使用的组件,但是必须依赖容器。
组件:就是不同图形容器的对象
体系图如下:
4:使用方法:
1, 当作集合来使用,因为基本组件依赖容器组件,容器组件的方法和集合操作元素类似
代码演示:
public classGUI {
public static void main(String[] args) {
//定义右边界的窗体
Framef = newFrame("hello GUI");
//设定窗体的大小以及在屏幕的位置
f.setBounds(200,300, 622, 300);
//设置窗体组件中基本组件的布局方式
f.setLayout(new FlowLayout());
//创建按钮,基本组件
Buttonbutton =newButton("我是一个按钮");
//同设置窗体的方法一样
button.setSize(20,30);
//将按钮添加到窗体中
f.add(button);
//这个监听器就是在时时观看有没有相关的方法,动作发生在这个上面,有,则调用对应的方法;
button.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvente) {
//对话框
final Frame fdg=new Frame();
Labelt=newLabel("哈哈,我是对话框");
Dialogdg=newDialog(fdg,"点错了");
dg.add(t);
dg.setBounds(500,400, 100, 100);
dg.setVisible(true);
dg.addWindowListener(new WindowAdapter(){
@Override
publicvoidwindowClosing(WindowEvent e) {
e.getWindow().dispose();
//不关这个引用,jvm不会退出的,局部内部类访问局部变量,要用final修饰
fdg.dispose();
}
});
}
});
//事件监听机制
f.addWindowListener(new WindowAdapter() {
@Override
public voidwindowClosing(WindowEvent arg0) {
//面向对象的思想,让窗体关闭,必须要得到窗体,调用关闭(释放资源)
arg0.getWindow().dispose();
}
});
//显示这个窗体
f.setVisible(true);
}
}
运行效果就不演示了
5针对以上重要,也是我觉得GUI最重要的地方在于
5.1事件监听机制
事件源:事件发生的场所,通常就是各个组件,按钮,窗口,菜单等
事件对象:封装了一个在时间源上发生的一个用户的操作,通常在时间监听器中获取这个对象用来判断用户的操作信息;
监听器:负责监听各个事件源发生的事件,并对事件做出处理,我们写处理,不同的监听器封装了不同的事件对象因此,也就有了不同的处理过程
@好奇:这个监听器是如何知道用户发生了一次操作呢,通过差API发现,时间监听器的根接口是一个标记接口EventListener,我想底层应该是jvm做了特殊处理,知道了事件源上发生了一次操作,就是序列话接口是一个标记接口一样;
使用:在事件源添加事件监听器的实现类(通常我们用匿名内部类类写),将事件源和事件对象联系起来
5.2适配器模式:
1一个监听器中封装了好多对事件处理的方法,但是通常我们只需要其中的一两个方法来处理,所以在实现类和借口之间多了一个抽象类,但是这其中的方法不是抽象的,对监听器做了一个空实现,我们只要实现这个适配器类来重写其中一两个我们想要方法,就可以了,不会让代码看起来那么臃肿;比如
WindowLinstener监听器中有这么多的方法:
void
windowActivated(WindowEvent e)
将 Window 设置为活动 Window 时调用。
void
windowClosed(WindowEvent e)
因对窗口调用 dispose 而将其关闭时调用。
void
windowClosing(WindowEvent e)
用户试图从窗口的系统菜单中关闭窗口时调用。
void
windowDeactivated(WindowEvent e)
当 Window 不再是活动 Window 时调用。
void
windowDeiconified(WindowEvent e)
窗口从最小化状态变为正常状态时调用。
void
windowIconified(WindowEvent e)
窗口从正常状态变为最小化状态时调用。
void
windowOpened(WindowEvent e)
窗口首次变为可见时调用。
适配器抽象类:public abstract class WindowAdapter
对上面的接口做了一个空的实现,因为是空实现,所以将适配器些微抽象类,不能实例对象,因为无意义,这样我们就可以使用这个中间类类创建对象,使用方法了,让程序看的不那么臃肿;
图解:
3资源释放:
因为所有的GUI对象在创建出来时,先是在内存中处在,调用显示属性的方法才会显示,党有容器嵌套时,我们要关闭资源时要注意了,像刚刚在对话框中就的关闭他说应用的窗体类
- GUI---图形编程基础
- GUI图形用户界面编程
- 黑马程序员----java的GUI图形用户界面及编程基础
- 黑马程序员—java基础—GUI图形用户界面编程
- java基础<图形用户界面GUI>
- java基础<图形用户界面GUI>
- Python基础--图形用户界面GUI
- GUI:图形化界面编程
- GUI编程基础
- 黑马程序员—JAVA基础—GUI(图形化界面编程)
- java语言基础(99)——java--GUI(图形化界面)编程
- java基础--GUI(图形化界面)
- 黑马程序员-基础-GUI图形用户界面
- Java基础<十七>--->GUI(图形用户界面)
- Java基础---图形用户界面GUI(一)
- Java基础---图形用户界面GUI(二)
- Java基础--GUI图形化界面
- 黑马程序员——GUI图形编程
- HDU 5444 Elven Postman(最优二叉树) 2015多校
- “一个数组有正负0,求和为0的最长连续子数组”的失败解法
- 网络请求保存到本地plist
- VB6基本数据库应用(十):【增补篇】游标Cursor和锁Lock简介
- Cocos2d-x Lua 初步
- GUI---图形编程基础
- Android 解析包时候出现错误
- HDU 3652 B-number(数位DP模板题)
- 《Java编程思想》读书笔记4.控制执行流程
- HDOJ1002 A + B Problem II(大数)
- 网络字节序与主机字节序的转换
- 停课的沉淀反思(三)——卫生、博客
- C语言的不知道第多少天(2)
- leetcode dp之Triangle