zoukankan      html  css  js  c++  java
  • Java课程设计-定时器

    Java课程设计--定时器


    1.团队课程设计博客链接

    团队博客地址

    2.个人负责模块或任务说明

    • 框架构建
    • 时间设置面板,倒计时面板
    • 按钮设置

    3.自己的代码提交记录截图

    4.自己负责模块或任务详细说明

    1.框架构建

    public TimeFrame() {
    		add(new TimePanel());
    
    		this.setTitle("定时器");
    		this.setSize(1200, 800);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setLocationRelativeTo(null);
    		this.setResizable(false);
    		this.setVisible(true);
    	}
    

    2.创建类

    class TimePanel extends JPanel implements ActionListener, KeyListener, Runnable {
    
    		/**
    		 * 
    		 */
         	private static final long serialVersionUID = 1L;
         	
    		private int setTime;
    		private int showTime;
    		// 定义是否计时变量
    		private boolean flag = false;
    		private JPanel jpShowTime, jpSetting, jpTimeInfo;
    
    		private JLabel labTime, labSetTime, labPassTime, labRemainTime;
    		private JButton btnBegin;
    		private JButton btnPause;
    		private JButton btnContinue;
    		private JButton btnHidden;
    		private JButton btnShow;
    		private JButton btnExit;
    		// 倒计时设置
    		private JPanel jpTimeSetting;
    		private JTextField tfdHours;
    		private JTextField tfdMinutes;
    		private JTextField tfdSeconds;
    
    		public TimePanel() {
    			this.setSize(1200, 800);
    			this.setLayout(null);
    
    			createSetting();
    			createShowTime();
    			
    			jpSetting.addKeyListener(this);
    			jpSetting.setFocusable(true);
    		}
    

    3.创建倒计时面板、设置时间面板、倒计时属性面板、时间信息面板

    void createShowTime() {
    			jpShowTime = new JPanel();
    			jpShowTime.setSize(1200, 400);
    			jpShowTime.setBackground(Color.BLACK);
    
    			labTime = new JLabel("00 : 00 : 00", JLabel.CENTER);
    			labTime.setFont(new Font("微软雅黑", 1, 200));
    			labTime.setForeground(Color.RED);
    			jpShowTime.add(labTime);
    
    			add(jpShowTime).setBounds(0, 400, 1200, 400);
    
    		}
    void createSetting() {
    			jpSetting = new JPanel();
    			jpSetting.setSize(1200, 400);
    			jpSetting.setLayout(null);
    
    			createTimeSetting();
    			createTimeInfo();
    
    			// 开始按钮
    			btnBegin = new JButton("开始[F8]");
    			jpSetting.add(btnBegin).setBounds(700, 50, 80, 50);
    			// 暂停按钮
    			btnPause = new JButton("暂停[F9]");
    			jpSetting.add(btnPause).setBounds(800, 50, 80, 50);
    			// 继续按钮
    			btnContinue = new JButton("继续[F10]");
    			jpSetting.add(btnContinue).setBounds(900, 50, 80, 50);
    			// 隐藏按钮
    			btnHidden = new JButton("隐藏[F11]");
    			jpSetting.add(btnHidden).setBounds(700, 120, 80, 50);
    			// 显示按钮
    			btnShow = new JButton("显示[F12]");
    			jpSetting.add(btnShow).setBounds(800, 120, 80, 50);
    			// 帮助按钮
    			btnExit = new JButton("退出");
    			jpSetting.add(btnExit).setBounds(900, 120, 80, 50);
    
    			btnBegin.addActionListener(this);
    			btnPause.addActionListener(this);
    			btnContinue.addActionListener(this);
    			btnHidden.addActionListener(this);
    			btnShow.addActionListener(this);
    			btnExit.addActionListener(this);
    
    			add(jpSetting).setBounds(0, 0, 1200, 400);
    		}
    void createTimeSetting() {
    			jpTimeSetting = new JPanel();
    			jpTimeSetting.setSize(300, 200);
    			jpTimeSetting.setLayout(new FlowLayout());
    
    			jpTimeSetting.add(tfdHours = new JTextField(3));
    			jpTimeSetting.add(new JLabel("时"));
    			jpTimeSetting.add(tfdMinutes = new JTextField(3));
    			jpTimeSetting.add(new JLabel("分"));
    			jpTimeSetting.add(tfdSeconds = new JTextField(3));
    			jpTimeSetting.add(new JLabel("秒"));
    			
    			tfdHours.addKeyListener(this);
    			tfdMinutes.addKeyListener(this);
    			tfdSeconds.addKeyListener(this);
    
    			jpSetting.add(jpTimeSetting).setBounds(100, 100, 300, 200);
    		}
    void createTimeInfo() {
    			jpTimeInfo = new JPanel();
    			jpTimeInfo.setLayout(null);
    			jpTimeInfo.setBackground(new Color(154, 217, 250));
    			jpTimeInfo.setSize(1200, 100);
    			// 总秒数
    			labSetTime = new JLabel("计时总秒数 : ", JLabel.CENTER);
    			labSetTime.setFont(new Font("微软雅黑", 0, 20));
    			jpTimeInfo.add(labSetTime).setBounds(0, 10, 400, 80);
    			// 已过秒数
    			labPassTime = new JLabel("已过秒数 : ", JLabel.CENTER);
    			labPassTime.setFont(new Font("微软雅黑", 0, 20));
    			jpTimeInfo.add(labPassTime).setBounds(400, 10, 400, 80);
    			// 剩余秒数
    			labRemainTime = new JLabel("剩余秒数 : ", JLabel.CENTER);
    			labRemainTime.setFont(new Font("微软雅黑", 0, 20));
    			jpTimeInfo.add(labRemainTime).setBounds(800, 10, 400, 80);
    
    			jpSetting.add(jpTimeInfo).setBounds(0, 300, 1200, 100);
    		}
    

    5.课程设计感想

    虽然时间紧迫,但是做了组长还是要负责好课设,于是和组员一直讨论要怎么搞才好,沟通交流是做课设最主要的,分配好各自的工作然后讨论交流才让我们的课设最终完成。最后的最后,不懂的~要百度~
    
  • 相关阅读:
    React新闻网站--Header组件拆分及样式布局
    React 中的前端路由 react-router-dom
    Bootstrap4 图像形状+Jumbotron+信息提示框+按钮
    Bootstrap4 表格练习
    React好帮手--Ant Design 组件库的使用
    React 中的生命周期函数
    React 中 ref 的使用
    深入理解 Java 线程池
    Elastic 技术栈之 Filebeat
    mysql 开发进阶篇系列 54 权限与安全(账号管理的各种权限操作 下)
  • 原文地址:https://www.cnblogs.com/chendajia/p/7065585.html
Copyright © 2011-2022 走看看