zoukankan      html  css  js  c++  java
  • Java实现局部内部类的简单应用

    日常生活中,闹钟的应用非常广泛。使用它可以更好地帮助人们安排时间。编写程序,实现一个非常简单的闹钟,控制台会不断输出当前的时间,并且每隔一秒钟会发出提示音。用户可以单击“确定”按钮来退出程序。

    思路分析:

    1. 首先定义一个外部类,此外部类包括延迟时间和提示标志两个成员变量,通过构造函数来获取这两个参数;
    2. 在此外部类中定义一个方法作为闹钟的启动函数;
    3. 在该方法中定义一个局部内部类来实现ActionListener接口,重写actionPerformed()方法,使用SimpleDateFormat类和Date()方法获取系统的当前时间并输出,判断提示标志,若为true则使用Toolkit.getDefaultToolkit().beep();重复之前的输出方法;创建一个新的Timer()对象来重复输出;
    4. 在主方法中创建对象并实例化后,使用JOptionPane类的showMessageDialog()方法弹出提示框来让用户选择是否退出。

        代码如下:

    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import javax.swing.Timer;
    
    public class AlarmClock {
        
        private int delay;
        private boolean flag;
        
        public AlarmClock(int delay, boolean flag) {
            this.delay = delay;
            this.flag = flag;
        }
        
        public void start() {
            class Printer implements ActionListener {
                
                @Override
                public void actionPerformed(ActionEvent e) {
                    SimpleDateFormat format = new SimpleDateFormat("k:m:s");
                    String result = format.format(new Date());
                    System.out.println("当前的时间是:" + result);
                    if (flag) {
                        Toolkit.getDefaultToolkit().beep();
                    }
                }
            }
            new Timer(delay, new Printer()).start();
        }
    }
    import javax.swing.JOptionPane;
    
    public class Test {
        public static void main(String[] args) {
            AlarmClock clock = new AlarmClock(1000, true);
            clock.start();
            JOptionPane.showMessageDialog(null, "是否退出?");
            System.exit(0);
        }
    }
    

      效果如图:

  • 相关阅读:
    CWinApp类 功能
    CreateCompatibleBitmap
    CreateCompatibleDC CreateCompatibleBitmap SelectObject详解
    Linux学习_菜鸟教程_4
    Linux学习_菜鸟教程_1
    Linux学习_菜鸟教程_2
    Linux学习_菜鸟教程_3
    MATLAB生成正弦波
    03补件处理流程
    对数据库中所有的表进行操作
  • 原文地址:https://www.cnblogs.com/cysolo/p/3560997.html
Copyright © 2011-2022 走看看