displaystudent.java

来自「主要是对于JAVA的编程的基本语言 希望能够帮得上你。」· Java 代码 · 共 191 行

JAVA
191
字号
package exercise;

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.sql.*;

public class DisplayStudent extends JFrame{
	
	//声明部分
	static JFrame frame;
	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;		
	
	//构造方法
	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");
			//显示第一条记录
			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 e) {				
				JOptionPane.showMessageDialog(null,e.getMessage(),"显示学生表记录",JOptionPane.ERROR_MESSAGE);
			}			
		} catch (ClassNotFoundException e) {			
			JOptionPane.showMessageDialog(null,e.getMessage(),"显示学生表记录",JOptionPane.ERROR_MESSAGE);
		} catch (SQLException e) {			
			JOptionPane.showMessageDialog(null,e.getMessage(),"显示学生表记录",JOptionPane.ERROR_MESSAGE);
		}
		
		
		//注册监听器,编写事件处理代码
		btnExit.addActionListener(new ActionListener(){		
			public void actionPerformed(ActionEvent arg0) {				
				System.exit(0);
			}			
		});		
		
		btnTop.addActionListener(new ActionListener(){			
			public void actionPerformed(ActionEvent arg0) {				
				try {
					rs.first();					
					frame.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 e) {				
					JOptionPane.showMessageDialog(null,"表中没有任何记录!","显示学生表记录",JOptionPane.ERROR_MESSAGE);
				}				
			}	
		});
		
		btnPrevious.addActionListener(new ActionListener(){			
			public void actionPerformed(ActionEvent arg0) {				
				try {
					rs.previous();
					frame.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 e) {					
					JOptionPane.showMessageDialog(null,"已到第一条记录!","显示学生表记录",JOptionPane.WARNING_MESSAGE);
				}				
			}	
		});
		
		btnNext.addActionListener(new ActionListener(){			
			public void actionPerformed(ActionEvent arg0) {				
				try {
					rs.next();					
					frame.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 e) {				
					JOptionPane.showMessageDialog(null,"已到最后一条记录!","显示学生表记录",JOptionPane.WARNING_MESSAGE);
				}				
			}	
		});
		
		btnBottom.addActionListener(new ActionListener(){			
			public void actionPerformed(ActionEvent arg0) {				
				try {
					rs.last();
					frame.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 e) {				
					JOptionPane.showMessageDialog(null,"表中没有任何记录!","显示学生表记录",JOptionPane.ERROR_MESSAGE);
				}				
			}	
		});	
		
	}

	public static void main(String[] args) {		
		frame=new DisplayStudent("显示学生表记录");
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?