第十二周总结
越来越接近放假了,很多的课都已经结课了。这个星期体育课没有了,应用文写作也没有了。但是随之而来的考试也让我忙碌起来。这周心理课要看视频,相对于是期末考试了,但是没有看完。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;
}
}
}
上一篇: 软考网工—华为命令总结
下一篇: AC自动机(板子总结)