黑马程序员-java基础 GUI

---------------------- android培训java培训 、期待与您交流! ----------------------

 

GUI 
图形用户接口


CLI 命令行用户接口

java为GUI提供的对象都存在java.Awt(重量级控件)和java.Swing(轻量级控件)两个包中
容器的排放方式,即布局
1  FlowLayout  流式布局  从左到右的数序排列
2  BorderLayout  边界布局  东南西北中
3  GridLayout  网格布局管理 规则的矩阵
4  GardLayout 卡片布局管理  选项卡
5  GirdBagLayout  网格包布局管理器  非规则的矩阵


创建图形化界面步骤:
1 创建窗体
2 对窗体进行基本设置
3 定义组件
4 将组件通过窗体的add方法添加到窗体中
5 让窗体显示,通过setVisible(true)


事件监听机制
1 事件源  awt包或swing包中的图形界面组件
2 事件   每一个事件源的共性事件和特有事件
3 监听器    将可以触发某一个事件的所有动作都封装到了监听器中
4 事件处理   可以由程序员自己编写代码处理事件

开发事项
1 由于实现windowListener 接口需要重写其7个方法,而可能只会用其中一个方法
这样就有多余的代码。而windowListener 的子类windowAdapter已经实现了windowListener
接口并重写了其中的所有方法,那么我们只需要继承windowAdapter,重写我们需要的方法即可

2 想要知道那个组件具备什么样的的特有的监听器,需要查看该组件对象的功能
   按钮特有的监听器 addActionListener() 实现ctionListener接口重写相应方法处理相应事件

3 鼠标监听事件  addMouseListener()   继承MouseAdapter类重写相应方法处理相应事件

4 键盘监听事件  addKeyListener()     继承KeyAdpter类重写相应方法处理相应事件

 

package gui;

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class test {
 public static void main(String[] args) {
  
  Frame f = new Frame("窗体");// 创建一个窗体  也可以让类从Frame继承
  f.setSize(600, 400);// 设置宽 高
  f.setLocation(400, 150);// 设置初始位置
  // f.setBounds() 设置 坐标 宽 高
  //设置布局方式
  f.setLayout(new FlowLayout());
  f.setVisible(true);

  Button b = new Button("按钮");// 创建一个按钮
  // 添加窗体监听器,并用匿名内部类方式执行事件
  f.addWindowListener(new WindowAdapter() {

   @Override
   public void windowClosing(WindowEvent e) {
    System.exit(0);
   }

  });
  // 创建单行文本框组件
    final TextField tf = new TextField(30);
  // 把文本框组件绑定到窗体
  f.add(tf);
  // 把按钮组件绑定到窗体
  f.add(b);
  // 添加按钮的监听器,并用匿名内部类方式执行事件
  // b.addActionListener(new ActionListener() {
  //
  // public void actionPerformed(ActionEvent e) {
  // System.exit(0);
  // }
  // });
  // 添加鼠标事件
  b.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    if (e.getClickCount() == 2)
     System.out.println("aaaaa");
   }
  });
  // 添加键盘事件
  b.addKeyListener(new KeyAdapter() {
   public void keyPressed(KeyEvent e) {
    // 当按下键盘esc时触发
    if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
     System.exit(0);
    }
    // 当按下ctrl+s 时触发
    if (e.isControlDown() && e.getKeyCode() == KeyEvent.VK_S) {
     System.out.println(KeyEvent.getKeyText(e.getKeyCode()));
    }

   }
  });

  tf.addKeyListener(new KeyAdapter() {
   public void keyPressed(KeyEvent e) {
    int code = e.getKeyCode();
    if(!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9)){
     System.out.println(e.getKeyCode()+"非法");
     e.consume();
    }
   }
  });
  
  Button b2 = new Button("提交");
  f.add(b2);
  //创建多行文本框
  final TextArea ta = new TextArea(10,80);
  f.add(ta);
  
  b2.addActionListener(new ActionListener() {
   
   public void actionPerformed(ActionEvent e) {
    String text = tf.getText();
    ta.append(text);
    tf.setText("");
    
   }
  });
  
  

 }
}

 

 

 

---------------------- android培训java培训 、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值