GUI图形化界面

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();
   }
  });
 }
 
}

转载于:https://my.oschina.net/u/2329247/blog/388437

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值