《Java技术》第七次作业

《Java技术》第七次作业

(一)学习总结

1.写出事件处理模型中的几个关键词,并通过具体代码实例说明你对事件处理模型的理解。

  • 事件处理流程:
    事件源->处理事件方法->是否有监听器处理事件->
    {有监听器处理事件->特定事件的处理方法——>找到注册的事件监听器;
    没有监听器处理事件->放弃事件}

  • 事件监听器:在组件中使用注册监听,直接使用窗体的addWindowListener(监听对象)方法注册事件监听。

      //窗口监听
      frame.addWindowListener(new WindowApapter(){
          public void windowColsing(WindowEvent arg0){
              System.exit(1);
          }
      });
      //动作监听
      but.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent arg0){
              if(arg0.getSource()==but){
                  lab.setText(text.getText());
              }
          }
      });
  • 监听适配器:继承WindowAdapter类,根据自己的需要覆写方法,可以利用匿名内部类完成监听操作。

      JFrame frame=new JFrame("Welcome");
      frame.addWindowListener(new WindowAdapter(){
          public void windowClosing(WindowEvent arg0){
              System.exit(1);
          }
      });
  • 动作事件及监听处理:使用ActionListener接口处理按钮的动作事件,ActionListener接口只定义了一个方法void actionPerformed(ActionEvent e)。

      but.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent arg0){  //发生操作时调用
              if(arg0.getSource()==but){                  //判断触发源是否是按钮
                  lab.setText(text.getText());
              }
          }
      });
  • 加入滚动条

      private JTextArea text=new JTextArea();
      JScrollPane scr=new JScrollPane(text);
      scr.setBounds(5,5,300,200);
      super.add(scr);

(二)实验总结

  • 实验内容:

  • 基本要求:
    使用GUI,编写一个宠物商店管理系统实现对宠物信息的统一管理。假设宠物种类有猫、狗,宠物信息包括:编号、品种、年龄、数量、价格。系统启动进入登录界面,登录成功进入管理界面,否则提出错误信息后退出系统。
    在管理界面实现以下功能:

    (1)显示所有宠物列表

    (2)添加宠物到列表

    (3)删除宠物

    (4)对宠物信息进行修改

    (5)退出

  • 功能扩展:用户分为管理员和普通用户两种,增加普通用户注册功能,增加普通用户界面。实现以下功能:

    (1)显示所有宠物

    (2)能够按照品种对宠物进行查找

    (3)购买宠物

    (4)显示购买清单

    (5)退出

  • 类图
    1079941-20170511184439691-1848579639.png

  • 程序设计思路:

    1.定义用户登录界面,编写登录验证类,在验证类中只是根据输入进来的用户名和密码进行验证,并没有注册功能,在编写图形界面时,再对用户名和密码进行验证,若登录成功,进入宠物商店管理界面。

    2.定义宠物商店管理窗口类,定义查询、添加、修改、删除方法,设置窗口界面,模拟宠物数据,添加到表格。

    3.定义存储数据类,使用集合存储数据。

    4.创建管理类,实现宠物的添加、修改、删除方法。

    5.创建项目运行类,定义main方法,进行测试。

  • 问题1:在运行时,出现一个用户登录界面和一个空界面。

  • 原因:在用户登录界面继承了JFrame,相当于已经定义了一个窗口,而用户登录界面类中再次定义了一个窗口。

  • 解决方案:不需要继承JFrame。

  • 问题2:在登录界面中,重置按钮不起作用。

      submit.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent arg0) {
              if (arg0.getSource() == submit) {
                  String tname = nameText.getText();
                  String tpass = new String(passText.getPassword());
                  LoginCheck log = new LoginCheck(tname, tpass);
                  if (log.validate()) {
                      infoLab.setText("登录成功,欢迎光临!");
                      frame.setVisible(false);
                      new Admin().setVisible(true);
                  } else {
                  infoLab.setText("登录失败,错误的用户名或密码!");
                  }
              }
              if (arg0.getSource() == reset) {
                  nameText.setText("");
                  passText.setText("");
                  infoLab.setText("用户登录系统!");
              }
          }
      });
  • 解决方案:再对重置按钮进行动作监听。把重置按钮和登录按钮的动作监听分开写。

  • 问题3:ArrayList集合转化二维数组

      private String[][] listToArray(ArrayList<Pet> list) {
          String[][] tbody = new String[list.size()][5];
          for (int i = 0; i < list.size(); i++) {
              Pet pet = list.get(i);
              tbody[i][0] = pet.getNo();
              tbody[i][1] = pet.getType();
              tbody[i][2] = pet.getAge();
              tbody[i][3] = pet.getNumber();
              tbody[i][4] = pet.getPrice();
          }
          return tbody;
      }

(三)代码托管

1079941-20170511172259176-790663086.png

转载于:https://www.cnblogs.com/li-yumeng/p/6841861.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值