package stu.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 stu.database.DBConnection;
import stu.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(true);
//不允许拖动重新排列各列
table.getTableHeader().setReorderingAllowed(true);
//设置行高30
table.setRowHeight(30);
//列宽设置为100
table.getColumnModel().getColumn(0).setPreferredWidth(80);
table.getColumnModel().getColumn(3).setPreferredWidth(120);
table.getColumnModel().getColumn(4).setPreferredWidth(120);
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 number ="+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));
}else{
JOptionPane.showMessageDialog(null, "学号输入错误,无相关记录!", "错误", JOptionPane.ERROR_MESSAGE);
}
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)
不会敲代码的马铃薯头小鬼
- 粉丝: 55
- 资源: 1
最新资源
- 基于java+ssm+mysql的高校勤工助学系统 源码+数据库+论文(高分毕设项目).zip
- Gartner发布2025年网络治理、风险与合规战略路线图
- 基于java+ssm+mysql的驾校收支管理可视化平台 源码+数据库+论文(高分毕设项目).zip
- 基于java+ssm+mysql的家具销售库存管理信息系统 源码+数据库+论文(高分毕设项目).zip
- 基于java+ssm+mysql的航空票务推荐系统 源码+数据库+论文(高分毕设项目).zip
- Python自动化办公源码-02批量生成PPT版荣誉证书
- Wincc数据报表功能:灵活查询历史数据,支持多种时间选择,Excel导出与打印功能,实时显示动态数据与统计摘要 ,Wincc数据报表功能,历史数据查询,可按天查询本日数据,也可按月查询本月数据 或
- 基于java+ssm+mysql的教师办公管理系统 源码+数据库+论文(高分毕设项目).zip
- 基于java+ssm+mysql的健身管理系统 源码+数据库+论文(高分毕设项目).zip
- 基于java+ssm+mysql的经典电影推荐网站 源码+数据库+论文(高分毕设项目).zip
- 全球CMP垫片调节器市场现状:预计2031年市场销售额达到4.18亿美元
- 龙贝格观测器Pll的C代码实现:iqmath加速定点计算,适用于STM32F1开发板,即调即用,现场演示效果出众,龙贝格观测器Pll的C代码(iqmath数学运算加速 定点计算)已做好了接口 调用调试
- 基于java+ssm+mysql的酒店管理系统 源码+数据库+论文(高分毕设项目).zip
- 基于java+ssm+mysql的科研经费管理系统 源码+数据库+论文(高分毕设项目).zip
- 基于java+ssm+mysql的咖啡在线销售系统 源码+数据库+论文(高分毕设项目).zip
- 深度学习乐园项目案例分享:A061-TCN模型实现电力数据预测