A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

天涯明月刀

初级黑马

  • 黑马币:23

  • 帖子:9

  • 精华:0

© 天涯明月刀 初级黑马   /  2018-4-8 22:15  /  1557 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

点名器的实现
前言:萌生想要做个点名器的想法是源于每天老师上课点名提问,作为一个即将成为程序员的的我决定用程序的方式试着去实现.
实现思路:
1. 由于点名的名单可能会改变,所以可以把名单写在配置文件里,程序通过I/O流知识读取配置文件.
2. 为了使得点名器的外观更好看一些,百度学习啦一些swing的知识,做成GUI格式,一个文本域显示姓名,两个控制按钮,控制开始点名和结束点名
3. 点名随机性的实现:程序读取配置文件里的信息后存储在List集合,遍历List集合时一次将姓名覆盖打印在文本域,通过控制按钮随机暂停显示姓名
程序流程:
代码实现:
package com.itheima;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
public class MyFrame extends JFrame {
        boolean isStart = true;
        public MyFrame() throws IOException {
                //读取student.properties配置信息
                String path = System.getProperty("user.dir");
                System.out.println(path);
                InputStream in = new BufferedInputStream(new FileInputStream(path+"\\student.properties"));
                Properties pro = new Properties();
                pro.load(in);
                //给新建集合赋值
                List<String> list =  new ArrayList<String>();
                int i = 0;
                while (true) {
                        String name = pro.getProperty("name" + i);
                        if (name == null) {
                                break;
                        }
                        list.add(name);
                        i++;
                }
                //创建GUI窗体
                JFrame jf = new JFrame("测试");
                Container container = jf.getContentPane();
                container.setLayout(null);
                //创建文本区
                JLabel jl = new JLabel();
                jl.setBounds(10, 10, 100, 21);
                jl.setHorizontalAlignment(SwingConstants.CENTER);
                container.add(jl);
                //创建按钮
                JButton bl = new JButton("开始");
                bl.setBounds(130, 10, 80, 21);
                JButton b2 = new JButton("停止");
                b2.setBounds(230, 10, 80, 21);
        //给按钮加监听
                bl.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                                isStart = true;
                                System.out.println("开始按钮被监听啦"+isStart);
                                System.runFinalization();
                        }
                });
                b2.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                                isStart = false;
                                System.out.println("结束按钮被监听啦"+isStart);
                        }
                });
                container.add(bl);
                container.add(b2);
                jf.setVisible(true);
                jf.setSize(350, 80);
                jf.setLocation(500, 300);
                jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                //给文本域赋值
                int k = 0;
                int counttime = 0;
            while (true) {
                    counttime++;
                    if (counttime%1000000000==0) {
                            System.out.println(isStart+"**"+k);
                        }
                    if(isStart){
                            jl.setText((String) list.get(k));
                                k++;
                                if (k >= list.size()) {
                                        k = 0;
                                }
                    }
                }
        }
}
主方法测试
package com.itheima;
import java.io.IOException;
public class Test {
        public static void main(String[] args) throws IOException {
                MyFrame myFrame = new MyFrame();
        }
}
感悟:从萌生这个想法到实现花了一天多的时间,中间遇到了不少问题,特别是处理监听的时候老是出问题,最后在陈君老师的帮助下解决啦.这个小程序用到啦集合,I/O流,while死循环,if判断语句,构造方法,Swing的部分知识.算是对这十多天学习的一个小总结,锻炼啦自己的思维和编程能力,也确实给了自己不少自信,我相信在以后的学习中只要不断的钻研,坚持进步,数月后一定可以找个好工作.加油!

2 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马