GUI-01

 

 


创建图像化界面
1,创建frame窗体
2,对窗体进行基本设置
  比如大小,位置,布局
3,定义组件
4,将组件通过窗体的add方法添加到窗体中
5,让窗体显示,通过setVisible(true);


事件监听机制的特点:
1,事件源
2,事件
3,监听器
4,事件处理

事件源:就是awt包或者swing包中的那些图形界面组件

事件:每一个事件源都有自己特有的对应事件和共性事件

监听器:将可以触发某一个事件的动作(不止一个动作)都已经封装到了监听器中

以上三者,在java中都已经定义好了,
直接获取其对象来用就可以了。

我们要做的事情,就是对产生的动作进行处理。

 

import java.awt.*;
import java.awt.event.*;
class AwtDemo
{
 public static void main(String[] args)
 {
  Frame f = new Frame("my awt");//默认窗体不可见,默认边界布局
  f.setSize(500,400);//设置长和宽,即横坐标和纵坐标
  f.setLocation(300,200);//设置窗体出现在屏幕位置,即距离左边和上面距离
  f.setLayout(new FlowLayout());//设置窗体布局,设置为流式布局
  
  Button b = new Button("我是一个按钮");
  f.add(b);//添加按钮
  
  f.addWindowListener(new WindowAdapter()//匿名内部类
  {
   public void windowClosing(WindowEvent e)
   {
    System.out.println("我关"); 
    System.exit(0);
   }
   public void windowActivated(WindowEvent e)//窗口前置
   {
     System.out.println("我活了");
   }
   public void windowOpened(WindowEvent e)//打开窗口
   {
    System.out.println("我被打开了"); 
   }
    
  });// 添加指定窗口监听器
  
  f.setVisible(true);//设置显示窗体
  
  //System.out.println("hew");
 }
}
/*
class MyWin implements WindowListener
{
  //要覆盖7个方法,可是我只用到了关闭的动作。
  //其他动作都没有用到,可是却必须要复写。
}
*/
//因为WindowListener的子类WindowAdapter已经实现了
//WindListener接口。并覆盖了其中的所有方法。那么我
//只要继承自Windowadapter覆盖我需要的方法即可
class MyWin extends WindowAdapter
{
 public void windowClosing(WindowEvent e)
 {
  //System.out.println("window closing----"+e.toString()); 
  System.exit(0);//关闭窗口
 } 
}

-----------------------------------------------------------------------------

事件和图形化组件分离开

例:

import java.awt.*;
import java.awt.event.*;
class FrameDemo
{
 //定义该图形中所需的组件的引用
 private Frame f;
 private Button but;
 
 FrameDemo()//构造函数
 {
  init();
 }
 public void init() //此处定义图形界面
 {
  f = new Frame("my frame");
  
  //对frame进行基本设置
  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() //监听器,匿名内部类
  {
   public void windowClosing(WindowEvent e)
   {
    System.exit(0);
   }
  }); 
  
  //让按钮具备退出程序的功能
  /*
  按钮就是事件源。
  那么选择哪个监听器呢?
  通过关闭窗体示例了解到,想要知道哪个组件具备什么
  样的特有监听器,需要查看该组件对象的功能。
  通过查阅button的描述,发现按钮支持一个特有监听
  addActionListener.
  */
  but.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent e)
   {
    System.out.println("退出,按钮干的");
    System.exit(0); 
   } 
  });
 }
 
 public static void main(String[] args)//主函数
 {
  new FrameDemo(); //创建对象,产生窗体
 }
}

 --------------------------------------------------------------------------------

个人总结:记住窗口,按钮,文本框等一些相关命令,图形设计和事件分离,

要确定事件源,事件要写匿名内部类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值