---------------------- <a href="http://edu.youkuaiyun.com"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.youkuaiyun.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
摘要(GUI图形用户界面介绍-----布局管理器-----事件监听机制-----窗体事件---Action(执行事件)----鼠标事件----键盘事件)
GUI(图形用户界面):用图形的方式,显示计算机的界面,这样更方便更直观
CLI命令行用户接口:就是像DOS命令行一样的模式
JAVA为GUI提供的对象存在:
|--java.awt (抽象窗口工具包)
|--java.swing 抽象窗口工具包升级版
java.Awt(抽象窗口工具包):需调用本地系统方法实现功能,属于重量级控件(与系统练习强)
java.Swing:在AWT基础上建立的一套图形界面系统,其中提供了更多的组件而且完全JAVA实现
增强了移植性,属于轻量级控件(常用)
继承关系图(常用的):
布局管理器图:
Frame(框体)
例:
Frame f = new Frame("my awt"); //建立frame窗体,名为my awt
f.setSize(500,400); //设置窗体大小 宽x =500 高y= 400
f.setLocation(300,200); //设置出现位置 原理同上
f.setLayout(new Flowlayout()); //设置为流式布局 (Frame默认为边界式)
Button b = new Button("我是一个按钮"); //建一个按钮 ,名为 我是一个按钮
f.add(b); //将按钮加入框体
f.setVisible(true); //显示窗体
事件监听机制图:
步骤从 1~~~4
|--事件源:就是awt包或swing包中的那些图形界面组件
|--事件:每一个事件源都有自己特有的对应事件和共性方法
|--监听器:将可以触发一个或多个时间的动作,都已封装在了监听器中
以上三者java中都已定义好,直接获取其对象就可以用
!!我们要做的事情是,对产生的动作进行处理!!
窗体事件:
WindowListener 接口(窗口监听器):有7个方法要被覆盖
WindowAdapter 抽象类(适配器):实现了WindowListener的七个方法,便于创建对象(对象不用再复写七个方法)
且实现的内容为空 ,没有具体动作,只作为便于创建对象使用
例:
Frame f = new Frame ("哈哈");
f.addwindowListener(new Mywin());//添加窗体监听器
f.setVisible(true);
class Myiwin extends WindowAdapter//建立窗体事件监听处理方式,继承WindowAdapter(适配去)不用再复写七个方法
{
public void windowClosing (windowEvent e)//复写关闭窗口事件
{
System.exit(0); //当该事件发生时,退出程序
}
}
内部类形式:
f.addWindowListener(new WindowAdapter (){ //添加窗体监听,内部类(建立事件处理方式)
public void windowClosing(WindowEvent e){ //复写关闭窗口事件
System.exit(0); //当改时间发生时,退出程序
}
});
Action事件(执行事件):少数不用适配器的监听器,因为只有一个方法(点击后..执行)
例:
Button but = new Button("my button"); //建立一个按钮
but.addActionListener(new ActionListener(){ //给按钮添加一个执行侦听器,且内部实现处理方式
public void actionPerformed(ActionEvent e){ //复写唯一方法(点击后 执行。。)
System.out.println("退出是按钮干的"); //执行,打印
Systen.exit(0); //再执行退出程序
}
});
MouseListener(鼠标事件):-->MouseAdapter(鼠标适配器)
例:
Button but = new Button("哈"); //添加一个按钮
but.addMouseLisstener(new MouseAdapter(){ //给按钮添加鼠标侦听器
public void mouseEntered(MouseEvent e){ //当鼠标移动到被侦听对象时。。
System.out.println("鼠标进入到该组件"); //打印一句话
}
public void mouseClicked(MouseEvent e){ //当鼠标点击该对象时。。
if(e.getClickCount()==2) //如果连击数 是2的话
System.out.println("点击动作"); //打印一句话
}
});
KeyListener(键盘侦听器)--->KeyAdapter(键盘适配器)
例:
but.addkeyListener(new KeyAdapter(){ //给按钮添加键盘适配器
public void KeyPressed(KeyEvent e){ //当按下键时执行。。。
System.out.println(e.getKeyChar()+"---"+e.getKeyCode()); //打印按下的键和对应的值
System.out.println(KeyEvent.getKeyText(e.getKeyCode())); //打印值所对应的特殊键(Ctrl , Alt 等)
if(e.getKeyCode()==KeyEvent.VK_ENTER) //若按下回车键则
System.exit(0); //退出程序
if(e.isControlDown() && getKeyCode()==26) //若按下 ctrl 并按下26所对应的键时 则。
System.out.println("哈哈"); //打印一句话
}
});
注意:只有在按钮处于最前端时,即有虚框时,侦听器才执行
如图:
---------------------- <a href="http://edu.youkuaiyun.com"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.youkuaiyun.com"target="blank">.Net培训</a>、期待与您交流! ----------------------