第二十天总结0416

第二十天总结
GUI(图形用户界面)
1.java为GUI提供的对象都存在于Awt和Swing两个包中
Awt不跨平台,Swing跨平台,但是在所有平台下的界面都是一个风格
Conponent类:Container是他的一个子类,他拥有容器的特点,他的立

面可以添加组件
布局管理器:(当组件添加到容器中的时候要存在一个布局管理)
FlowLayout流式布局管理器
BorderLayout边界布局管理器(默认布局)
GridLayout网格布局管理器
CardLayout卡片布局管理器
GridBagLayout网格包布局管理器
2、是件监听机制:
组成:事件源,事件,监听器,事件处理
事件源:被触发的组件,比如说按钮
事件:如果我们在进行鼠标键盘操作的时候,那么鼠标和键盘就是事件
监听器:把事件所对应的动作都委托在监听器当中,当我们把监听器注

册到事件源当中的时候,当事件源触发的时候,监听器监听到之后,就

会触发相关的事件动作
/**
猜数字游戏窗口版
玩法:
1.每一次游戏开始前点击新游戏
2.在上面的文本行中输入小于等于100的正整数,回车或者点击右边的确

认了
3.游戏结果在下方的文本框中显示
2010.04.18凌晨
*/
import java.awt.*;
import java.awt.event.*;
import java.util.*;
class GuessNumber
{
 private Frame f;//窗体
 private TextField tf;//上方文本行
 private Button b,b1;//新游戏按钮和确认了按钮
 private TextArea ta;//下方文本框
 private int number;//随机数,也就是所要猜的数
 /*
 窗体构造函数,生成游戏所需要的文本框
 */
 GuessNumber()
 {
  f=new Frame("猜数字游戏");
  f.setSize(290,280);
  f.setLocation(510,200);
  f.setResizable(false);
  f.setLayout(new FlowLayout());
  b1=new Button("新游戏");
  f.add(b1);
  tf=new TextField(20);
  f.add(tf);
  b=new Button("确认啦");
  f.add(b);
  ta=new TextArea(12,37);
  ta.setText("请点击新游戏开始您的好运猜猜

猜"+"/r/n");
  f.add(ta);
  myEvent();
  f.setVisible(true);
 }
 /*
 整个程序的事件和监视器
 */
 private void myEvent()
 {
  /*
  新游戏按钮的监视器事件,鼠标点击新游戏产生随机


  */
  b1.addMouseListener(new MouseAdapter()
  {
   public void mouseReleased(MouseEvent e)
   { 
    Random ran=new Random();
    number=ran.nextInt(100)+1;
    tf.setText("");
    ta.setText("请在上面文本框中输

入一百以下正整数!"+"/r/n");
   }
  }); 
  /*
  窗体关闭按钮控制
  */
  f.addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent

e)
   {
    System.exit(0);
   }
  });
  /*
  控制文本行,提示不正确的输入,同时按回车将进行

猜数字流程
  */
  tf.addKeyListener(new KeyAdapter()
  {
   public void keyPressed(KeyEvent e)
   {
    if(e.getKeyCode()

>=KeyEvent.VK_A && e.getKeyCode()<=KeyEvent.VK_Z)
    {
     show("错误输入","请输入

小于等于一百的正整数");
    }
    else if(e.getKeyCode()

==KeyEvent.VK_ENTER)
    {
     trans();
    }
   }
  });
  /*
  用鼠标点击右边的确认了按钮也将进行猜数字流程
  */
  b.addMouseListener(new MouseAdapter()
  {
   public void mouseReleased(MouseEvent e)
   {
    trans();
   }
  });
 }
 /*
 猜数字的流程
 */
 private void trans()
 {
  if (number==0)
  {
   show("游戏错误","输入数字前请您先点击新

游戏!");
  }
  else
  {
   String str=tf.getText();
   String s_num=str.trim();
   if (s_num.hashCode()==0 ||

s_num.contains(" "))
   {
    show("错误输入","请输入小于等于

一百的正整数");
   }
   else
   {
   int num=Integer.parseInt(s_num);
   if (num>100 || num<=0)
   {
    show("错误输入","请输入小于等于

一百的正整数");
   }
   else
   {
    if (num>number)
    {
     ta.append(num+"/t"+"您

的数字大了,请重新输入%>_<%"+"/r/n");
     tf.setText("");
    }
    else if(num<number)
    {
     ta.append(num+"/t"+"您

的数字小了,请重新输入%>_<%"+"/r/n");
     tf.setText("");
    }
    else
    {
     show("猜对了","恭喜您,

猜中了!去买彩票吧^_^");
     ta.setText("请点击新游

戏开始您的好运猜猜猜"+"/r/n");
     number=0;
    }
   }
   }
  }
 }
 /*
 弹出窗口的构建
 */
 private void show(String title,String content)
 {
  final Dialog d1=new Dialog(f,title,true);
  d1.setSize(200,100);
  d1.setLocation(560,280);
  d1.setLayout(new FlowLayout());
  d1.setResizable(false);
  Label lab1=new Label(content,Label.CENTER);
  d1.add(lab1);
  Button b2=new Button("确定");
  d1.add(b2);
  b2.addMouseListener(new MouseAdapter()
  {
   public void mouseReleased(MouseEvent e)
   {
    d1.setVisible(false);
    tf.setText("");
    }
   });
   b2.addKeyListener(new KeyAdapter()
   {
    public void keyPressed(KeyEvent

e)
    {
     if(e.getKeyCode()

==KeyEvent.VK_ENTER)
     {
      d1.setVisible

(false);
      tf.setText("");
     }
    }
   });
  d1.setVisible(true);
 }
}
/*
用于测试程序的主函数
*/
class GuessNumberDemo
{
 public static void main(String[] args)
 {
  GuessNumber g=new GuessNumber();
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值