(五)拓展练习

这篇博客介绍了如何使用Java进行面向对象编程,创建了Animal、Cat、Dog和Bird类的继承结构,并实现了Shape接口的Circle和Rectangle类。此外,展示了如何利用Swing创建登录窗口,并添加按钮实现点击弹出消息框的功能。
摘要由CSDN通过智能技术生成

任务1、创建Animal类,继承Animal类创建Cat类、Dog类和Bird类

  • Animal的类图

fab8a86bbf874a999de50f5b3033a6f7.png

  • Cat的类图

cb7e24ce99cc43828c7fb0f53d8f0024.png 

  •  Dog的类图

bfa9e28468914e538f886f5ed449e64e.png

  •  Bird的类图

604b7dca8bfa40eaba75f8ecd5b95c11.png

 

任务2、创建Shape接口,创建Circle类和Rectangle类实现Shape接口

  • Shape接口的类图(getCircumference和getArea是抽象方法,getType是缺省方法,getPI是静态方法)
    303e73cd468d4ca8a0c317e6564af80e.png
  • Circle的类图

1555b56174b842e9a377bb547f6b6964.png 

  •  Rectangle的类图

ec3349eadb83456290ed8bb32adadc03.png

任务3、显示一个Swing窗口

  • 创建LoginFram类,继承JFrame
    1da097a2ede9442591ec1e2c582ea17c.png

 

package net.huawei.p03.t02;

import javax.swing.*;

/**
 * 功能:登录窗口
 * 作者:华卫
 * 日期:2022年05月05日
 */
public class LoginFrame extends JFrame {

    /**
     * 构造方法
     *
     * @param title
     */
    public LoginFrame(String title) {
        super(title); // super表示父类的实例
        initGUI(); // 初始化用户界面
    }

    /**
     * 初始化图形用户界面
     */
    private void initGUI() {
        // 设置窗口属性
        this.setVisible(true); // 让窗口可见
        this.setBounds(200, 200, 500, 400); // 设置窗口边界(位置与大小)
        this.setLocationRelativeTo(null); // 让窗口屏幕居中
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口时退出应用程序
    }

    public static void main(String[] args) {
        // 创建登录窗口匿名对象
        new LoginFrame("用户登录");
    }
}

  • 运行程序,查看结果

6748c93e71564ea2bda7b0e95dcc0a15.gif

 

  •  希望在窗口里添加一个按钮,单击它会弹出一个消息框,网页设计里通过脚本来实现,如下图所示。

19460e20b6d446758d55304da399b584.png

 

package net.huawei.p03.t02;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * 功能:登录窗口
 * 作者:华卫
 * 日期:2022年05月05日
 */
public class LoginFrame extends JFrame {

    private JButton btnLogin;

    /**
     * 构造方法
     *
     * @param title
     */
    public LoginFrame(String title) {
        super(title); // super表示父类的实例
        initGUI(); // 初始化用户界面
        eventHandling(); // 进行事件处理
    }

    /**
     * 事件处理
     */
    private void eventHandling() {
        // 给登录按钮注册动作监听器,实现监听器接口,编写事件处理方法
        btnLogin.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(null, "哈哈,今天立夏,欢迎登录~");
            }
        });
    }

    /**
     * 初始化图形用户界面
     */
    private void initGUI() {
        // 创建按钮对象
        btnLogin = new JButton("登录");
        btnLogin.setFont(new Font("楷体", Font.PLAIN, 20));

        // 获取窗口的内容面板(Container --> JPanel)
        JPanel panel = (JPanel) this.getContentPane();
        // 设置内容面板布局 - 流式布局
        panel.setLayout(new FlowLayout());

        // 将按钮对象添加到内容面板
        panel.add(btnLogin);

        // 设置窗口属性
        this.setVisible(true); // 让窗口可见
        this.setBounds(200, 200, 400, 300); // 设置窗口边界(位置与大小)
        this.setLocationRelativeTo(null); // 让窗口屏幕居中
        this.setResizable(false); // 让窗口不能调整尺寸
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口时退出应用程序
    }

    public static void main(String[] args) {
        // 创建登录窗口匿名对象
        new LoginFrame("用户登录");
    }
}

  • 运行程序,查看结果

e293098f86e444ef80f55f947010c1f6.gif

 57f41e3340374db693bf6f191e00ba64.png

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值