📄 studentpanel.java
字号:
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import java.awt.*;
public class StudentPanel extends JPanel
{
public StudentPanel(int selected)
{
this.selected = selected;
if(selected == 0) //修改密码界面
{
JLabel label1 = new JLabel("请输入当前的密码:", JLabel.CENTER);
oldPasswordField = new JPasswordField(20);
Box hbox1 = Box.createHorizontalBox();
hbox1.add(label1);
hbox1.add(Box.createHorizontalStrut(10));
hbox1.add(oldPasswordField);
JLabel label2 = new JLabel("请输入一个新密码:");
newPasswordField = new JPasswordField(20);
Box hbox2 = Box.createHorizontalBox();
hbox2.add(label2);
hbox2.add(Box.createHorizontalStrut(10));
hbox2.add(newPasswordField);
JLabel label3 = new JLabel("请再次输入新密码:");
againPasswordField = new JPasswordField(20);
Box hbox3 = Box.createHorizontalBox();
hbox3.add(label3);
hbox3.add(Box.createHorizontalStrut(10));
hbox3.add(againPasswordField);
changeButton = new JButton("修改");
changeButton.addActionListener(new StudentPanelAction());
resetButton = new JButton("重置");
resetButton.addActionListener(new StudentPanelAction());
Box hbox4 = Box.createHorizontalBox();
hbox4.add(changeButton);
hbox4.add(Box.createHorizontalStrut(50));
hbox4.add(resetButton);
Box vbox = Box.createVerticalBox();
vbox.add(Box.createVerticalStrut(30));
vbox.add(hbox1);
vbox.add(Box.createVerticalStrut(20));
vbox.add(hbox2);
vbox.add(Box.createVerticalStrut(20));
vbox.add(hbox3);
vbox.add(Box.createVerticalStrut(40));
vbox.add(hbox4);
add(vbox);
}
//课程修读界面 课程修读界面 课程修读界面 课程修读界面
if(selected == 1)
{
setLayout(new BorderLayout());
JLabel myLabel = new JLabel("已选课程查询",JLabel.CENTER);
myLabel.setFont(new Font("TimesRoman",Font.BOLD,20));
myLabel.setForeground(Color.RED);
add(myLabel, BorderLayout.NORTH);
query =new String("SELECT 成绩表.课程号,课程名,学时,学分,学期,教师 FROM 课程信息表,成绩表 WHERE 课程信息表.课程号=成绩表.课程号");
query = query+" AND 学号='" + LoginFrame.myTextField.getText()+"'";
getTable(query); // 调用私有方法
}
//选课申请界面 选课申请界面 选课申请界面
if(selected == 2)
{
setLayout(new BorderLayout());
JLabel myLabel = new JLabel("请输入课程号");
courseNumTextField = new JTextField(10);
queryButton = new JButton("申请");
queryButton.addActionListener(new StudentPanelAction());
queryButton.setPreferredSize(new Dimension(80, 20));
JPanel buttonPanel = new JPanel();
buttonPanel.add(myLabel);
buttonPanel.add(courseNumTextField);
buttonPanel.add(queryButton);
add(buttonPanel, BorderLayout.NORTH);
//构建课表
query =new String("SELECT * FROM 课程信息表");
JTable commoditytable = new JTable();
JScrollPane commodityscroller = new JScrollPane( commoditytable );
commodityscroller.setPreferredSize(new Dimension(100, 50));
add(commodityscroller);
getTable(query);
}
//成绩查询界面 成绩查询界面 成绩查询界面 成绩查询界面
if(selected == 3)
{
setLayout(new BorderLayout());
JLabel myLabel = new JLabel("成绩查询",JLabel.CENTER);
myLabel.setFont(new Font("TimesRoman",Font.BOLD,20));
myLabel.setForeground(Color.RED);
add(myLabel, BorderLayout.NORTH);
query =new String("SELECT 成绩表.课程号,课程名,教师,分数 FROM 课程信息表,成绩表 WHERE 课程信息表.课程号=成绩表.课程号");
query = query+" AND 学号='" + LoginFrame.myTextField.getText()+"'";
getTable(query);
}
//个人信息修改界面 个人信息修改界面 个人信息修改界面
if(selected == 4)
{
JLabel label1 = new JLabel("学生个人基本信息",JLabel.CENTER);
label1.setFont(new Font("TimesRoman",Font.BOLD,20));
label1.setForeground(Color.RED);
Box hbox1 = Box.createHorizontalBox();
hbox1.add(label1);
nameField = new JTextField(15);
nameField.setEditable(false);
Box hbox2 = Box.createHorizontalBox();
hbox2.add(new JLabel("姓名:"));
hbox2.add(nameField);
sexField = new JTextField(15);
Box hbox3 = Box.createHorizontalBox();
hbox3.add(new JLabel("性别:"));
hbox3.add(sexField);
majorField = new JTextField(15);
Box hbox4 = Box.createHorizontalBox();
hbox4.add(new JLabel("专业:"));
hbox4.add(majorField);
birthField = new JTextField(15);
Box hbox5 = Box.createHorizontalBox();
hbox5.add(new JLabel("出生:"));
hbox5.add(birthField);
heightField = new JTextField(15);
Box hbox6 = Box.createHorizontalBox();
hbox6.add(new JLabel("身高:"));
hbox6.add(heightField);
searchButton = new JButton("查询");
searchButton.addActionListener(new StudentPanelAction());
changeButton = new JButton("修改");
changeButton.addActionListener(new StudentPanelAction());
resetButton = new JButton("重置");
resetButton.addActionListener(new StudentPanelAction());
Box hbox7 = Box.createHorizontalBox();
hbox7.add(searchButton);
hbox7.add(Box.createHorizontalStrut(25));
hbox7.add(changeButton);
hbox7.add(Box.createHorizontalStrut(25));
hbox7.add(resetButton);
Box vbox = Box.createVerticalBox();
vbox.add(hbox1);
vbox.add(Box.createVerticalStrut(20));
vbox.add(hbox2);
vbox.add(Box.createVerticalStrut(5));
vbox.add(hbox3);
vbox.add(Box.createVerticalStrut(5));
vbox.add(hbox4);
vbox.add(Box.createVerticalStrut(5));
vbox.add(hbox5);
vbox.add(Box.createVerticalStrut(5));
vbox.add(hbox6);
vbox.add(Box.createVerticalStrut(20));
vbox.add(hbox7);
add(vbox);
}
}
//课程修读界面所用的方法
//课程修读界面的方法
/*----------------------------getTable-------------------------------*/
private void getTable(String commodityquery)
{
//加载驱动程序以连接数据库
try
{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
con = DriverManager.getConnection( url, username, password );
}
//捕获加载驱动程序异常
catch ( ClassNotFoundException cnfex )
{
System.err.println("装载 JDBC/ODBC 驱动程序失败。" );
cnfex.printStackTrace();
JOptionPane.showMessageDialog (StudentPanel.this, cnfex ,
"学生选课管理系统",JOptionPane.WARNING_MESSAGE );
System.exit( 1 ); // terminate program
}
//捕获连接数据库异常
catch ( SQLException sqlex )
{
System.err.println( "无法连接数据库" );
sqlex.printStackTrace();
JOptionPane.showMessageDialog (StudentPanel.this, sqlex ,
"学生选课管理系统",JOptionPane.WARNING_MESSAGE );
System.exit( 1 ); // terminate program
}
try
{
//执行SQL语句
stmt = con.createStatement();
ResultSet queryresultSet = stmt.executeQuery( commodityquery );
//在表格中显示查询结果
displayResultSet( queryresultSet); //调用另一个方法
}
catch ( SQLException sqlex )
{
sqlex.printStackTrace();
JOptionPane.showMessageDialog (StudentPanel.this, sqlex ,
"学生选课管理系统",JOptionPane.WARNING_MESSAGE );
}
}
/*---------------------------displayResultSet--------------------------------*/
private void displayResultSet( ResultSet commodityrs ) throws SQLException
{
//定位到达第一条记录
boolean commoditymoreRecords = commodityrs.next();
//如果没有记录,则提示一条消息
if ( ! commoditymoreRecords )
{
JOptionPane.showMessageDialog(StudentPanel.this, "无此记录" );
//setTitle( "无记录显示" );
return ;
}
Vector commoditycolumnHeads = new Vector();
Vector commodityrows = new Vector();
try
{
//获取字段的名称
ResultSetMetaData rsmd = commodityrs.getMetaData();
for(int i = 1; i <= rsmd.getColumnCount(); i++)
{
commoditycolumnHeads.addElement( rsmd.getColumnName( i ) );
}
//获取记录集
do
{
commodityrows.addElement(getNextRow( commodityrs, rsmd ) );
}
while ( commodityrs.next() );
ResultSetMetaData commodityrsmd = commodityrs.getMetaData(); //why???????
//在表格中显示查询结果
JTable commoditytable = new JTable( commodityrows, commoditycolumnHeads );
JScrollPane scroller = new JScrollPane( commoditytable );
scroller.setSize(800, 20);
// Container c = new Container();
// c.remove(1);
JPanel tablePanel = new JPanel();
tablePanel.setLayout( new BorderLayout() );
tablePanel.add( scroller, BorderLayout.CENTER );
add(tablePanel,BorderLayout.CENTER);
//刷新Table
validate();
}
catch ( SQLException sqlex )
{
JOptionPane.showMessageDialog (StudentPanel.this ,sqlex ,
"学生选课管理系统",JOptionPane.WARNING_MESSAGE );
}
}
/*-----------------------------getNextRow---------------------------------*/
private Vector getNextRow( ResultSet rs, ResultSetMetaData rsmd )throws SQLException
{
Vector currentRow = new Vector();
for ( int i = 1; i <= rsmd.getColumnCount(); i++ )
switch( rsmd.getColumnType( i ) ) //判断数据类型
{
case Types.CHAR:
case Types.VARCHAR:
case Types.LONGVARCHAR: currentRow.addElement( rs.getString( i ) );
break;
case Types.DECIMAL: currentRow.addElement( rs.getBigDecimal( i ) );
break;
case Types.DATE: currentRow.addElement( rs.getDate( i ) );
break;
case Types.SMALLINT:
case Types.INTEGER: currentRow.addElement(new Integer( rs.getInt( i ) ) );
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -