一、任务需求
要求有用户登录等 GUI 界面,用户数据存在数据库里,并体现面向对象编程思想。具
体如下:
刚入校的新生相互之间不太熟悉,数据库存储了新生的基本信息(姓名、性别、毕业学
校、籍贯)。系统随机在界面中显示某个新生的照片,通过回答新生的姓名是否正确来给分。
通过本系统促进新生之间更快的熟悉起来。
二、代码结构
为了体现面向对象的思想,模块分为六个模块。
分别是数据库连接,按钮,文本,窗体,线程,主函数。
三、代码分析
数据库表和样例
ArrayList<String> getInfo(){
ArrayList<String> people = new ArrayList<String>();
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "root");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from student");
while (rs.next()) {
// System.out.println(rs.getString("name"));
people.add(rs.getString("id"));
String name = rs.getString("name");
String id = rs.getString("id");
text.hashMap.put(id,name);
}
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return people;
}
以上代码是通过 DriverManager.getConnection 连接数据库并通过 sql 语句将数据读到 list 和
map 中。
package com.lrm.blog.dianming;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.security.PublicKey;
public class AnNiu {
public JButton x=new JButton("开始");
public JButton y=new JButton("停止");
public JButton z=new JButton("确定");
JTextField right =new JTextField();
JTextField error =new JTextField();
public AnNiu() {
x.setBounds(420,50,120,80);
x.setFont(new Font("宋体",Font.PLAIN,30));
y.setFont(new Font("宋体",Font.PLAIN,30));
y.setBounds(420,170,120,80);
z.setFont(new Font("宋体",Font.PLAIN,20));
z.setBounds(440,300,120,40);
right.setFont(new Font("宋体",Font.PLAIN,30));
right.setBounds(440,400,120,40);
error.setFont(new Font("宋体",Font.PLAIN,30));
error.setBounds(440,400,120,40);
right.setText("正确!");
error.setText("错误!"); right.setEditable(false); error.setEditable(false);
z.setEnabled(true); right.setVisible(false);
error.setVisible(false);
ShiJian();
}
public void ShiJian(){
x.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
x.setEnabled(false);
y.setEnabled(true);
Thread t1=new Thread(new MyThread());
MyThread.t=true;
t1.start();
}
});
y.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
y.setEnabled(false);
x.setEnabled(true);
MyThread.t=false;
}
});
z.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println( WenBen.jt1.getText());