package com.tz.util;
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.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/**
* 1.命令行
* 2.图形化界面(视窗行)GUI提供的对象都存在java.Awt,javax.Swing两个包
* awt:抽象窗口工具包,需要调用本地系统方法实现功能,属于重量级控件,跨平台不好
* swing:在awt基础上,建立的一套图形界面系统,提供了更多的组件,完全由java实现,增强了移植性,属于轻量级控件
* component:为容器,特殊的组件,
* label:标签,主要用于封装文字
* 特殊子类container容器 wingdow(frame dialog(filedialog))
* container 可以通过add方法添加其他组件进来.
* 容器中的组件的排放方式,布局
* 常见布局管理器:FlowLayout(流试布局)从做到右布局,默认居中
* borderLayout:边界布局
* gridLaout:网格式布局 cardlayout:卡片式布局 gradbaglayout:网格包布局
* @author Administrator
*创建图形化界面
*1.创建frame窗体
*2.对窗体基本设置
*3.定义组件
*4将组件通过窗体的add方法添加到窗体中
*5.让窗体显示,setVisible
*事件监听机制
*1.事件源:awt,swing包中的图形界面组件
*2.事件 每一个事件源都有自己特有的对应事件和共性事件
*3.监听器:将可以触发摸一个事件的动作都已经封装到了监听器中
*4.事件处理
*/
public class GUIDemo {
public static void main(String[] args) {
Frame f=new Frame("my awt");
f.setVisible(true);
f.setSize(100, 500);
f.setLocation(20, 30);
f.setLayout(new FlowLayout());
f.add(new Button("anliu"));
f.addWindowListener(new MyWin());
}
}
class MyWin extends WindowAdapter{
@Override
public void windowClosed(WindowEvent e) {
super.windowClosed(e);
System.exit(0);
}
}
class FrameDemo{
//定义该图形中所需要的组件的应用
private Frame f;
private Button but;
FrameDemo(){}
public void init(){
f=new Frame("my title");
f.setBounds(300, 100, 600, 500);
f.setLayout(new FlowLayout());
but=new Button("my button");
//将组件添加到frame
f.add(but);
//加载窗体事件
myEvent();
f.setVisible(true);
}
private void myEvent(){
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) {
super.windowClosed(e);
System.exit(0);
}
});
//让按钮局部退出程序的功能
/**
* 按钮为事件源,监听器的选择--通过关闭窗体实例知道,想知道那个组件具备什么样的特有监听器,需要查看该组件对象的功能
* 通过查阅button描述,发现按钮支持一个特有监听:addactionlistener
*/
but.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
}
}
/**
* 鼠标键盘监听
*/
class MouseAndKeyEvent{
private void myEvent(){
Button but=new Button();
int c=1;
//活动监听,按钮只要被活动,就执行,
but.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
}
});
but.addMouseListener(new MouseAdapter() {
//鼠标进入事件
@Override
public void mouseEntered(MouseEvent e) {
super.mouseEntered(e);
}
//点击事件
@Override
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
if (e.getClickCount()==2) {
System.out.println("双击");
}
}
});
//键盘监听
but.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
//键盘按下
@Override
public void keyPressed(KeyEvent e) {
e.getKeyChar();
e.getKeyCode();
}
});
}
}