package com.management;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import javax.swing.*;
import com.database.DBConnection;
import com.login.Students;
public class SearchManagement extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private Object [][]rowData;
private Object []column = {"学号","姓名","性别","生日","班级","学院"}; //表头
JPanel epanel = new JPanel();
JPanel spanel = new JPanel();
JPanel wpanel = new JPanel();
JLabel JLNumber = new JLabel("学号");
JTextField JTNumber = new JTextField(16);
JButton searchBtn = new JButton("查询个人");
JButton searchAllBtn = new JButton("查询全部");
JButton nextBtn = new JButton("重置");
JButton cancelBtn = new JButton("取消");
public SearchManagement() {
this.setTitle("查询信息");
this.setLayout(new BorderLayout());
//标签和输入框
wpanel.add(searchAllBtn);
wpanel.add(JLNumber);
wpanel.add(JTNumber);
//三个按钮添加事件
searchAllBtn.addActionListener(this);
searchBtn.addActionListener(this);
nextBtn.addActionListener(this);
cancelBtn.addActionListener(this);
epanel.add(searchBtn);
epanel.add(nextBtn);
epanel.add(cancelBtn);
this.add(epanel, BorderLayout.EAST);
this.add(wpanel, BorderLayout.WEST);
this.pack();
this.setLocationRelativeTo(null);//窗体居中显示
this.setVisible(true);
}
/**
* 设置表格的样式
* @param num
*/
public void setTable(int num) {
this.setVisible(false);
JFrame jf =new JFrame("查询结果");
jf.setLocationRelativeTo(null);
JPanel panel = new JPanel();
//表格所有行
Object [][]rowData = queryData(num);
JTable table = new JTable(rowData,column);
//设置表格内容颜色
table.setForeground(Color.BLACK); //字体颜色
table.setFont(new Font(null, Font.PLAIN, 14)); //字体样式
table.setSelectionBackground(Color.DARK_GRAY); //选中后字体背景
table.setSelectionForeground(Color.LIGHT_GRAY); //选中后字体颜色
table.setGridColor(Color.GRAY); //网格颜色
//设置表头
//设置表头字体样式
table.getTableHeader().setFont(new Font(null, Font.BOLD, 14));
//表头名称字体颜色
table.getTableHeader().setForeground(Color.RED);
//不允许手动改变列宽
table.getTableHeader().setResizingAllowed(false);
//不允许拖动重新排列各列
table.getTableHeader().setReorderingAllowed(false);
//设置行高30
table.setRowHeight(30);
//列宽设置为100
table.getColumnModel().getColumn(0).setPreferredWidth(80);
table.getColumnModel().getColumn(5).setPreferredWidth(180);
//设置滚动面板视口大小
table.setPreferredScrollableViewportSize(new Dimension(550,400));
//把表格放到滚动面板中(自动添加到顶部)
JScrollPane scrollPane = new JScrollPane(table);
panel.add(scrollPane);
jf.add(panel);
jf.pack();
jf.setContentPane(panel);
jf.setVisible(true);
}
/**
* 查询所有用户数据
* @return 查找到的数据生成的list集合
*/
public List<Students> queryAllUser(){
Connection conn=null;
//预编译语句
PreparedStatement ps=null;
//结果集
ResultSet rs=null;
String sql="select * from students";
List<Students> list=new ArrayList<Students>();
try {
conn=DBConnection.getCon();
//获取结果集
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
Students student=new Students();
student.setId(rs.getInt(1));
student.setName(rs.getString(2));
student.setSex(rs.getString(3));
student.setBirthday(rs.getString(4));
student.setClasses(rs.getString(5));
student.setAcademy(rs.getString(6));
list.add(student);
}
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
/**
* 查询一个用户数据(用户id)
* @return 查找到的用户数据返回
*/
public Students queryUser(Integer id){
Connection conn=null;
//预编译语句
PreparedStatement ps=null;
//结果集
ResultSet rs=null;
Students student = new Students();
String sql="select * from students where id="+id;
try {
conn=DBConnection.getCon();
//获取结果集
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
if(rs.next()){
student.setId(rs.getInt(1));
student.setName(rs.getString(2));
student.setSex(rs.getString(3));
student.setBirthday(rs.getString(4));
student.setClasses(rs.getString(5));
student.setAcademy(rs.getString(6));
}
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println(student.toString());
return student;
}
/**
* 生成表格数据
* @return 表格数据二维数组
*/
public Object[][] queryData(int num){
if(num == 0) {
List<Students> list=queryAllUser();
rowData=new Object[list.size()][column.length];
System.out.println("查询全部信息");
for(int i=0;i<list.size();i++){
for(int j=0;j<column.length;j++) {
rowData[i][0]=list.get(i).getId();
rowData[i][1]=list.get(i).getName();
rowData[i][2]=list.get(i).getSex();
rowData[i][3]=list.get(i).getBirthday();
rowData[i][4]=list.get(i).getClasses();
rowData[i][5]=list.get(i).getAcademy();
System.out.print(rowData[i][j]+" ");
}
System.out.println();
}
}else {
Students student = new Students();
student = queryUser(num);
//行设置为1,防止数组越界
rowData=new Object[1][column.length];
rowData[0][0]=student.getId();
rowData[0][1]=student.getName();
rowData[0][2]=student.getSex();
rowData[0][3]=student.getBirthday();
rowData[0][4]=student.getClasses();
rowData[0][5]=student.getAcademy();
}
return rowData;
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == searchBtn) {
int num = Integer.parseInt(JTNumber.getText());
if(num >0)
setTable(num);
else
JOptionPane.showMessageDialog(null, "输入数据错误!");
}
if(e.getSource() == searchAllBtn) {
JTNumber.setText("0");
setTable(0);
}
if(e.getSource() == nextBtn) {
JTNumber.setText(null);
}
if(e.getSource() == cancelBtn) {
this.setVisible(false);
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
GUI+Mysq学生管理系统,增删查改。 首先要确定要做哪些功能 使用数据库来保存数据 能增删改查学生的信息(学号,名称,年龄,性别,出生日期) ② 表结构设计 根据需求,那么只需要一个 student 表就能够完成功能了。 创建数据库:student 将数据库编码格式设置为 UTF-8 ,便于存取中文数据
资源推荐
资源详情
资源评论
收起资源包目录
GUI+Mysq学生管理系统.zip (25个子文件)
靳凌霄
.project 385B
src
com
database
DBConnection.java 1KB
management
AlterManagement.java 5KB
主界面.jpg 84KB
StudentManagement.java 5KB
AddManagement.java 5KB
SearchManagement.java 6KB
DeleteManagement.java 3KB
login
Students.java 1KB
Login.java 670B
.settings
org.eclipse.jdt.core.prefs 598B
.classpath 459B
bin
.project 385B
com
database
DBConnection.class 1KB
management
DeleteManagement.class 4KB
AddManagement.class 5KB
主界面.jpg 84KB
AlterManagement.class 5KB
StudentManagement$1.class 738B
StudentManagement.class 3KB
SearchManagement.class 8KB
login
Login.class 620B
Students.class 2KB
.settings
org.eclipse.jdt.core.prefs 598B
.classpath 459B
共 25 条
- 1
资源评论
- 忧伤的石一2023-07-25我在使用这个文件时,发现它能够很好地满足我对学生管理的需求,简单易懂。
- whph2023-07-25这个文件提供了一个不错的界面,操作起来很方便,使得学生管理变得更加高效。
- 爱设计的唐老鸭2023-07-25使用这个文件时,我发现它的数据库交互设计得很巧妙,能够很好地管理学生的信息。
- 呆呆美要暴富2023-07-25这个文件提供了一个简单而实用的学生管理系统,对于学校或培训机构来说,非常方便实用。
- 半清斋2023-07-25通过使用这个文件,我对学生管理系统的使用有了更深入的了解,对我在教学中起到了很大的帮助。
惊j
- 粉丝: 51
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功