📄 displaystudent.java
字号:
package StudentManagement;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.sql.*;
public class DisplayStudent extends JFrame implements ActionListener{
//声明部分
JPanel panel1,panel2;
JLabel lblNumber,lblName,lblSex,lblAge,lblDepartment;
JTextField txtNumber,txtName,txtSex,txtAge,txtDepartment;
JButton btnTop,btnPrevious,btnNext,btnBottom,btnExit;
Connection conn;
Statement stmt;
ResultSet rs;
int recCount; //总记录数
//构造方法
public DisplayStudent(String title){
super(title);
initialize();
}
private void initialize() {
//创建组件
panel1=new JPanel();
panel2=new JPanel();
lblNumber=new JLabel("学号:");
lblName=new JLabel("姓名:");
lblSex=new JLabel("性别:");
lblAge=new JLabel("年龄:");
lblDepartment=new JLabel("系名:");
txtNumber=new JTextField("",10);
txtName=new JTextField("",10);
txtSex=new JTextField("",5);
txtAge=new JTextField("",5);
txtDepartment=new JTextField("",15);
btnTop=new JButton("第一条[T]");
btnPrevious=new JButton("上一条[P]");
btnNext=new JButton("下一条[N]");
btnBottom=new JButton("最后一条[B]");
btnExit=new JButton("退出[X]");
//添加组件
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(panel1,"Center");
this.getContentPane().add(panel2,"South");
panel1.setLayout(new GridLayout(5,2));
panel1.add(lblNumber);
panel1.add(txtNumber);
panel1.add(lblName);
panel1.add(txtName);
panel1.add(lblSex);
panel1.add(txtSex);
panel1.add(lblAge);
panel1.add(txtAge);
panel1.add(lblDepartment);
panel1.add(txtDepartment);
panel2.add(btnTop);
panel2.add(btnPrevious);
panel2.add(btnNext);
panel2.add(btnBottom);
panel2.add(btnExit);
//设置属性
this.setSize(500, 300);
this.setResizable(false);
this.pack();
this.setLocationRelativeTo(null);
this.setVisible(true);
txtNumber.setEditable(false);
txtName.setEditable(false);
txtSex.setEditable(false);
txtAge.setEditable(false);
txtDepartment.setEditable(false);
btnTop.setMnemonic(KeyEvent.VK_T);
btnPrevious.setMnemonic(KeyEvent.VK_P);
btnNext.setMnemonic(KeyEvent.VK_N);
btnBottom.setMnemonic(KeyEvent.VK_B);
btnExit.setMnemonic(KeyEvent.VK_X);
try {
//安装驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//连接数据库
conn=DriverManager.getConnection("jdbc:odbc:student");
//创建SQL语句
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
//执行SQL语句获取结果集
rs=stmt.executeQuery("select * from studentbase");
//计算总记录数
while(rs.next()){
recCount++;
}
//显示第一条记录
rs.first();
this.setTitle("显示学生表记录"+" 当前记录:"+rs.getRow());
txtNumber.setText(rs.getString("学号"));
txtName.setText(rs.getString("姓名"));
txtSex.setText(rs.getString("性别"));
txtAge.setText(rs.getString("年龄"));
txtDepartment.setText(rs.getString("系名"));
} catch (ClassNotFoundException e) {
JOptionPane.showMessageDialog(null,e.getMessage(),"显示学生表记录",JOptionPane.ERROR_MESSAGE);
} catch (SQLException e) {
JOptionPane.showMessageDialog(null,"表中没有记录!","显示学生表记录",JOptionPane.ERROR_MESSAGE);
btnTop.setEnabled(false);
btnPrevious.setEnabled(false);
btnNext.setEnabled(false);
btnBottom.setEnabled(false);
}
//注册监听器
btnTop.addActionListener(this);
btnPrevious.addActionListener(this);
btnNext.addActionListener(this);
btnBottom.addActionListener(this);
btnExit.addActionListener(this);
}
//编写事件处理代码
public void actionPerformed(ActionEvent e) {
if(e.getSource()==btnTop){
try {
rs.first();
this.setTitle("显示学生表记录"+" 当前记录:"+rs.getRow());
txtNumber.setText(rs.getString("学号"));
txtName.setText(rs.getString("姓名"));
txtSex.setText(rs.getString("性别"));
txtAge.setText(rs.getString("年龄"));
txtDepartment.setText(rs.getString("系名"));
} catch (SQLException e1) {
}
}else if(e.getSource()==btnPrevious){
try {
if(rs.getRow()>1){
rs.previous();
}else{
JOptionPane.showMessageDialog(null, "已到第一条记录!", "编辑学生表记录",
JOptionPane.WARNING_MESSAGE);
}
this.setTitle("显示学生表记录"+" 当前记录:"+rs.getRow());
txtNumber.setText(rs.getString("学号"));
txtName.setText(rs.getString("姓名"));
txtSex.setText(rs.getString("性别"));
txtAge.setText(rs.getString("年龄"));
txtDepartment.setText(rs.getString("系名"));
} catch (SQLException e1) {
}
}else if(e.getSource()==btnNext){
try {
if(rs.getRow()<recCount){
rs.next();
}else{
JOptionPane.showMessageDialog(null, "已到最后一条记录!", "编辑学生表记录",
JOptionPane.WARNING_MESSAGE);
}
this.setTitle("显示学生表记录"+" 当前记录:"+rs.getRow());
txtNumber.setText(rs.getString("学号"));
txtName.setText(rs.getString("姓名"));
txtSex.setText(rs.getString("性别"));
txtAge.setText(rs.getString("年龄"));
txtDepartment.setText(rs.getString("系名"));
} catch (SQLException e1) {
}
}else if(e.getSource()==btnBottom){
try {
rs.last();
this.setTitle("显示学生表记录"+" 当前记录:"+rs.getRow());
txtNumber.setText(rs.getString("学号"));
txtName.setText(rs.getString("姓名"));
txtSex.setText(rs.getString("性别"));
txtAge.setText(rs.getString("年龄"));
txtDepartment.setText(rs.getString("系名"));
} catch (SQLException e1) {
}
}else if(e.getSource()==btnExit){
this.dispose();
}
}
//主方法
public static void main(String[] args) {
new DisplayStudent("显示学生记录");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -