• Java第七次作业


    Java第七次作业

    (一)学习总结

    1.写出事件处理模型中的几个关键词,并通过具体代码实例说明你对事件处理模型的理解。(代码在练习的包里)
    (1)事件:就是承载事件源状态改变时的信息对象。java.awt.event包和javax.swing.event包中定义了各种事件类,类名以Event结尾。
    (2)监听器:API对于每种事件都定义了对应的接口,接口中定义了处理该事件的方法,这些接口称为事件监听器接口。监听器接口以Listener结尾。如ActionListener接口处理ActionEvent事件。事件源产生一个事件,可以传送给事件监听者处理。 事件监听者实际上就是一个类,该类实现了某个事件监听器接口,对接受到的事件进行处理。
    (3)窗体事件:WindowsListener是专门处理窗体事件监听接口,一个窗体的所有变化,如窗口的打开关闭都可以使用这个接口进行监听。实现WindowsListener单单只有一个监听器是不够的,还需要在组件时使用时注册监听。
    (4)监听适配器:在事件处理中提供了很多的Adapter(适配器)类,它们是监听器接口的默认实现类。通过继承适配器类来实现监听器接口时,只需直接重写需要处理事件对应的方法即可,无需处理接口的其他方法,可以方便用户进行事件处理的实现。
    2.Swing中的组件
    (1)容器(Container)是Component的抽象子类,该类中允许装入其他的组件,主要用来布局。常用的容器:
    Jframe:顶级容器,不能被放入另一个容器中
    JPanel不能独立存在,必须放到另一个容器中
    (2)组件:一个以图形方式显示在屏幕上并能与用户进行交互的对象,例如按钮、文本框等。组件要放在容器中才能显示出来。
    2.其他需要总结的内容。(事件处理例题在练习的包里)
    Java采用布局管理器对放置在容器内的组件实行动态管理。
    (1)布局管理器用来:
    决定组件在容器上如何摆放;
    决定组件的大小;
    (2)Java支持四种布局
    FlowLayout 流布局
    BorderLayout 边界布局
    GridLayout 网格布局
    CardLayout 卡片布局
    3.容器的布局
    (1)框架
    框架是带标题框的窗口,窗口的大小可以改变。
    默认情况下,框架使用BorderLayout布局管理器,可以使用setLayout( )对此进行修改。
    (2)面板
    面板是一个容器,不能作为独立的窗口使用。默认情况下,面板使用FlowLayout布局管理器,可以使用setLayout( )方法对此进行修改。面板可以像按钮那样被创建并加入到其他容器中。
    4.事件处理
    java事件处理是采取“委派事件模型”
    5.事件处理步骤
    (1)确定事件源
    确定事件源,即发生事件的组件。Quit按钮 (2) 确定事件源后,根据要处理事件确定事件类型。比如点击按钮事件是ActionEvent,关闭窗口事件是WindowEvent。
    (3)确定事件监听器接口,实现接口
    确定事件类型后,需要进一步确定处理该事件的监听器接口,如ActionEvent事件对应的接口是ActionListener。确定接口后,需要自定义事件处理类实现该接口。
    (4)覆盖监听器接口中的适当方法
    自定义类实现监听器接口后,需要覆盖监听器中特定的方法。监听器接口中可能声明了多个方法,事件处理机制会根据用户的不同操作自动调用不同的方法。
    (5)事件源注册监听器
    实现监听器后,需要对事件源注册监听器,方能生效。每个组件都有一系列的addXXXListener方法,可以用来为组件注册不同的监听器。

    (二)实验总结

    实验内容:
    1.宠物商店
    使用GUI,编写一个宠物商店管理系统实现对宠物信息的统一管理。假设宠物种类有猫、狗,宠物信息包括:编号、品种、年龄、数量、价格。系统启动进入登录界面,登录成功进入管理界面,否则提出错误信息后退出系统。
    在管理界面实现以下功能:
    (1)显示所有宠物列表
    (2)添加宠物到列表
    (3)删除宠物
    (4)对宠物信息进行修改
    (5)退出
    设计思路:定义欢迎窗口类
    定义工具类,实现窗口组件的居中显示和显示窗口图标。修改欢迎窗口类。
    实现在文本框输入后回车完成信息的发送:
    事件源:input按钮,事件类型:KeyEvent,事件适配器类:KeyAdapter,重写其中的keyReleased(KeyEvent e)方法,用匿名内部类实现。
    定义宠物商店管理窗口类
    定义查询、添加、修改、删除方法。
    测试:模拟宠物商店中的数据,添加到表格。
    修改欢迎窗口类。
    定义宠物商店实体类
    问题:点击相应的button没有显示相应的界面
    原因:在此dialog类内没有创建showWelcomePetStorePlus()的方法
    解决方法:

        public void showWelcomePetStorePlus() {
            this.setVisible(false);
            new WelcomePetStorePlus().setVisible(true);
        }
    

    方法调用:

    private void addListener() {
                btn.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    judjeUserItem();  //调用判断方法
                    showWelcomePetStorePlus();
                }
            }); 
        }
    

    (三)代码托管

    • 码云commit历史截图
  • 相关阅读:
    第六周进度条
    团队开发需求分析视频连接
    敏捷开发综述
    数组2--数组首尾相接,求最大子数组
    数组1--求一个数的最大子数组
    第四周进度条
    四则运算3
    第三周进度条
    第二周进度条
    单元测试
  • 原文地址:https://www.cnblogs.com/junjun137/p/6837750.html
Copyright © 2020-2023  润新知