欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第十二周总结

程序员文章站 2024-01-29 13:56:52
...

越来越接近放假了,很多的课都已经结课了。这个星期体育课没有了,应用文写作也没有了。但是随之而来的考试也让我忙碌起来。这周心理课要看视频,相对于是期末考试了,但是没有看完。python课上讲的是GUI案例,弹出对话框那种,以前以为很难,但是看老师讲起来感觉也不是很难。知只是可能会在运用上会有一些困难,这个GUI在Java上面也是有相类似的知识点的。但是还没有讲到。老师给了我们一个随机选人的案例,也需要弹出对话框,只是可能比GUI又多了一些其他的知识。不知道自己什么时候才能很轻松的写出别人认为的这些基础知识啊。Java课这周讲的是input和output。看字面意思感觉是很简单的,但是在里面的内容还是觉得有一些难,感觉快要跟不上了啊,好难啊,以后怎么办啊。老师的案例是演示输入基础数据和计算后输出结果。好像那些操作差不多都是一样的,但是又有一些差别。这周老师让我们当场写一个小小的总结,那时候我才发现自己脑袋中的知识是有多么的少啊,可以说是一点都没有的那种,记不住事情。但是不管再难也要坚持下去。
MySQL也讲了新知识——子查询。看着老师讲就感觉很绕,下来以后写作业才发现,果不其然不是一般的绕啊!有些题是根本无从下手,就好像脑袋里面一团乱麻一样。不过还好也还是可以写作业的。
下面是随机点名程序的代码:
package net.lsl.test;

import javax.swing.;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.
;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.*;
import java.util.Random;

public class RandomCallRoll extends JFrame {
//声明部分
static JFrame frmCallRoll;
JPanel pnlCenter,pnlSouth,pnlContent;
JLabel lblStudentName;
JButton btnStart,btnStop,btnExit;
String[] names;
int studentNum;
Random rnd;
BufferedReader br;
String nextLine;
JList lstClass;
String[] strClasses;
JScrollPane scpClass;
boolean m_bRunning;
Thread thread;

//构造方法
public RandomCallRoll(String title){
    super(title); //调用父类构造方法
    init();//调用初始化方法
}

//初始化方法
private void init() {
    //创建组件
    pnlCenter=new JPanel();
    pnlSouth=new JPanel();
    pnlContent=new JPanel();
    lblStudentName=new JLabel("请点名");
    btnStart=new JButton("开始");
    btnStop=new JButton("停止");
    btnExit=new JButton("退出");
    rnd=new Random();

    File dir=new File("src/net/lsl/test");
    strClasses=dir.list(new MyFilter());
    lstClass=new JList(strClasses);
    scpClass=new JScrollPane(lstClass,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
            JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

    lstClass.setSelectedIndex(0); //选中列表框的第一项
    this.setTitle("随机点名程序—"+strClasses[0]);  //修改窗口标题

    try {
        br=new BufferedReader(new FileReader("src/net/lsl/test/"+strClasses[0]));
        nextLine=br.readLine();
        while(nextLine!=null){
            studentNum++;
            nextLine=br.readLine();
        }
        names=new String[studentNum];
        br=new BufferedReader(new FileReader("src/net/lsl/test/"+strClasses[0]));
        nextLine=br.readLine();
        int i=0;
        while(nextLine!=null){
            names[i]=nextLine;
            i++;
            nextLine=br.readLine();
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    //设置布局方式,添加组件
    this.setContentPane(pnlContent); //将pnlContent设置为内容面板
    pnlContent.setLayout(new BorderLayout()); //设置为边框布局
    pnlContent.add(pnlCenter,"Center");
    pnlContent.add(pnlSouth,"South");
    pnlCenter.add(lblStudentName);
    pnlSouth.add(scpClass);
    pnlSouth.add(btnStart);
    pnlSouth.add(btnStop);
    pnlSouth.add(btnExit);

    //设置组件属性
    pnlCenter.setBackground(Color.YELLOW);
    pnlSouth.setBackground(Color.YELLOW);
    lblStudentName.setForeground(Color.RED);
    lblStudentName.setFont(new Font("黑体",Font.BOLD,200));
    btnStart.setFont(new Font("黑体",Font.BOLD,100));
    btnStop.setFont(new Font("黑体",Font.BOLD,100));
    btnExit.setFont(new Font("黑体",Font.BOLD,100));

    //设置窗口属性
    this.setVisible(true);  //让窗口可见
    this.setSize(700,500); //设置窗口大小
    this.setResizable(false);//窗口不能更改大小
    this.pack();  //使得窗口刚好能容纳一切组件
    this.setLocationRelativeTo(null);  //让窗口在屏幕居中(相对定位)

    //注册监听器+编写事件处理代码
    this.addWindowListener(new WindowAdapter() {    //继承式的匿名内部类
        @Override
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    });

    btnExit.addActionListener(new ActionListener() {  //接口式的匿名内部类
        @Override
        public void actionPerformed(ActionEvent e) {
            System.exit(0);
        }
    });

    //开始按钮事件
    btnStart.addActionListener(new ActionListener() {//接口式的匿名内部类
        @Override
        public void actionPerformed(ActionEvent e) {
            thread=new Thread(new Runnable(){
                @Override
                public void run() {
                    while(m_bRunning){
                        lblStudentName.setText(names[Math.abs(rnd.nextInt())%names.length]);
                        try {
                            Thread.sleep(100);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
            });
            thread.start();
            m_bRunning=true;
        }
    });

    //停止按钮单击事件
    btnStop.addActionListener(new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e) {
            m_bRunning=false;
        }
    });

    //列表框选择事件
    lstClass.addListSelectionListener(new ListSelectionListener() {
        @Override
        public void valueChanged(ListSelectionEvent e) {
            if(e.getValueIsAdjusting()){  //表明鼠标按下还没释放
                frmCallRoll.setTitle("随机点名程序—"
                        +strClasses[lstClass.getSelectedIndex()]);  //修改窗口标题
                lblStudentName.setText("请点名");
                studentNum=0;  //对每个班级重新统计人数
                try {
                    br=new BufferedReader(new FileReader(
                            "src/"+strClasses[lstClass.getSelectedIndex()]));
                    nextLine=br.readLine();
                    while(nextLine!=null){
                        studentNum++;
                        nextLine=br.readLine();
                    }
                    names=new String[studentNum];
                    br=new BufferedReader(new FileReader(
                            "src/"+strClasses[lstClass.getSelectedIndex()]));
                    nextLine=br.readLine();
                    int i=0;
                    while(nextLine!=null){
                        names[i]=nextLine;
                        i++;
                        nextLine=br.readLine();
                    }
                } catch (FileNotFoundException e1) {
                    e1.printStackTrace();
                } catch (IOException e2) {
                    e2.printStackTrace();
                }
            }
        }
    });
}

//主方法
public static void main(String[] args) {
    frmCallRoll=new RandomCallRoll("随机点名程序");
}

}

//创建一个文件名过滤器,过滤txt文件
class MyFilter implements FilenameFilter{
@Override
public boolean accept(File dir, String name) {
if(name.endsWith(".txt")){
return true;
}else{
return false;
}
}
}