📄 studentdb.java
字号:
import java.sql.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class StudentDB extends JDialog //implements ActionListener
{
//private boolean blnVisible=true;
JDialog dlgLogin=new JDialog();
JTabbedPane tabs =new JTabbedPane(SwingConstants.TOP);
Container conContentPane=getContentPane();
public static void main(String args[])
{ StudentDB Student=new StudentDB();
Student.createUI();
}
private void createUI()
{
AdmisLoginPanel pnlLoginAdmis =new AdmisLoginPanel();
ComUserLoginPanel pnlLoginComUser =new ComUserLoginPanel(dlgLogin);
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent Event)
{
System.exit(0);
}
});
tabs.addTab( "管理员",pnlLoginAdmis);
tabs.addTab("普通用户",pnlLoginComUser);
//Container conContentPane=getContentPane();
conContentPane.add(tabs,"Center");
setTitle("学籍管理系统登录窗口");
setSize(350,200);
setVisible(true);
/*System.out.println(blnVisible);
blnVisible=pnlLoginAdmis.blndispose();
System.out.println(blnVisible);
if(blnVisible) dispose();
*/
}
}
class AdmisLoginPanel extends JPanel implements ActionListener //管理员组件及监听
{
//private boolean blnnewdispose;
private boolean blnPanDuan;
private boolean blndispose=false;
private String strAdmisPassword=new String("admis");
private JLabel lblPassword=new JLabel("管理员密码");
private JPasswordField txtPassword =new JPasswordField("",6);
private JButton btnLogin =new JButton("登录");
private JButton btnCancel =new JButton("取消");
//StudentDB Stud;
AdmisLoginPanel()
{
GridBagLayout gridbag=new GridBagLayout();
GridBagConstraints constraints =new GridBagConstraints();
setLayout(gridbag);
constraints.insets=new Insets(5,5,5,5);
constraints.gridx=0;
constraints.gridy=2;
constraints.anchor=GridBagConstraints.EAST;
gridbag.setConstraints(lblPassword,constraints);
this.add(lblPassword);
constraints.gridx=1;
constraints.gridy=2;
constraints.anchor=GridBagConstraints.WEST;
gridbag.setConstraints(txtPassword,constraints);
this.add(txtPassword); txtPassword.addActionListener(this);
txtPassword.setToolTipText("请输入管理员密码");
constraints.gridx=0;
constraints.gridy=3;
constraints.anchor=GridBagConstraints.EAST;
gridbag.setConstraints(btnLogin,constraints);
this.add(btnLogin); btnLogin.addActionListener(this);
btnLogin.setToolTipText("管理员登录");
constraints.gridx=1;
constraints.gridy=3;
constraints.anchor=GridBagConstraints.WEST;
gridbag.setConstraints(btnCancel,constraints);
this.add(btnCancel); btnCancel.addActionListener(this);
btnCancel.setToolTipText("取消登录");
}
public void actionPerformed(ActionEvent eve)
{
Object objSource =eve.getSource();
if(objSource==btnLogin )
{
if(strAdmisPassword.equals(txtPassword.getText())) //测试登陆密码 getPassword() -- uses or overrides a deprecated API 使用或重载
{
blnPanDuan=true;
txtPassword.setText("");
QueryFrame qframe =new QueryFrame(blnPanDuan);//boolean blnPanDuan);
qframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//使窗口显示在中央
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = qframe.getSize();
if (frameSize.height > screenSize.height)
frameSize.height = screenSize.height;
if (frameSize.width > screenSize.width)
frameSize.width = screenSize.width;
qframe.setLocation( (screenSize.width - frameSize.width) / 2,(screenSize.height - frameSize.height) / 2);
//System.out.println("hello");
qframe.show();
// blndispose=true;
//System.out.println("diao "+blndispose);
//dlgLogin.dispose();
//dlgLogin.setVisible(false);
}
else
{
JOptionPane.showMessageDialog(null, "密码不正确,请重新输入");
txtPassword.setText("");
txtPassword.requestFocus();
}
}
else if(objSource==btnCancel)
{txtPassword.setText("");
txtPassword.requestFocus();
}
//frmLogin.setVisible(false);
}
/*public boolean blndispose() //返回布尔值函数
{
System.out.println("return "+blndispose);
return blndispose;
} */
}
class ComUserLoginPanel extends JPanel implements ActionListener //ItemListener 普通用户组件及监听
{
private boolean blnPanDuan; //决定是否具有全部功能
private String strComUserPassword=new String("common");
private JLabel lblPassword=new JLabel("用户密码 ");
private JPasswordField txtPassword =new JPasswordField("",6);
private JButton btnLogin =new JButton("登录");
private JButton btnCancel =new JButton("取消");
private JDialog dlgnewLogin =new JDialog();
public ComUserLoginPanel(JDialog dlgLogin)
{
//System.out.println("dlgLogin="+dlgLogin.toString());
dlgnewLogin=dlgLogin;
//System.out.println("dlgLogin="+dlgnewLogin.toString());
GridBagLayout gridbag=new GridBagLayout();
GridBagConstraints constraints =new GridBagConstraints();
setLayout(gridbag);
constraints.insets=new Insets(6,6,6,6);
constraints.gridx=0;
constraints.gridy=2;
constraints.anchor=GridBagConstraints.EAST;
gridbag.setConstraints(lblPassword,constraints);
this.add(lblPassword);
constraints.gridx=1;
constraints.gridy=2;
constraints.anchor=GridBagConstraints.WEST;
gridbag.setConstraints(txtPassword,constraints);
this.add(txtPassword); txtPassword.addActionListener(this);
txtPassword.setToolTipText("请输入用户密码");
constraints.gridx=0;
constraints.gridy=3;
constraints.anchor=GridBagConstraints.EAST;
gridbag.setConstraints(btnLogin,constraints);
this.add(btnLogin); btnLogin.addActionListener(this);
btnLogin.setToolTipText("用户登录");
constraints.gridx=1;
constraints.gridy=3;
constraints.anchor=GridBagConstraints.WEST;
gridbag.setConstraints(btnCancel,constraints);
this.add(btnCancel); btnCancel.addActionListener(this);
btnCancel.setToolTipText("取消登录");
}
public void actionPerformed(ActionEvent eve)
{
Object objSource =eve.getSource();
if(objSource==btnLogin )
{
if(strComUserPassword.equals(txtPassword.getText())) //测试登陆密码 getPassword() -- uses or overrides a deprecated API 使用或重载
{
blnPanDuan=false;
txtPassword.setText("");
QueryFrame qframe = new QueryFrame(blnPanDuan);
qframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//使窗口显示在中央
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = qframe.getSize();
if (frameSize.height > screenSize.height)
frameSize.height = screenSize.height;
if (frameSize.width > screenSize.width)
frameSize.width = screenSize.width;
qframe.setLocation( (screenSize.width - frameSize.width) / 2,(screenSize.height - frameSize.height) / 2);
//System.out.println("hello");
qframe.show();
//System.out.println("dlgLogin="+dlgnewLogin.toString());
//dlgLogin.dispose();
// dlgLogin.setVisible(false);
//System.exit(0);
//dlgnewLogin.setVisible(false);
//conContentPane.setVisible(false);
}
else
{
JOptionPane.showMessageDialog(null, "密码不正确,请重新输入");
txtPassword.setText("");
txtPassword.requestFocus();
}
}
else if(objSource==btnCancel)
{txtPassword.setText("");
txtPassword.requestFocus();
}
//frmLogin.setVisible(false);
}
}
//}
class QueryFrame extends JFrame implements ActionListener
{
private boolean blnnewPanDuan;
public static final int WIDTH = 600;
public static final int HEIGHT =400;
private Connection conn;
private Statement stmt;
//输入输出组件声明
private JPanel pnlInsert;
private JTextField txtStuno;
private JTextField txtStuname;
private JTextField txtStuage;
private JComboBox cbxStusex;
private JComboBox cbxStupolitical;
private JTextField txtStuhometown;
private JTextField txtStudept;
private JTextField txtStuno_d;
private JTextArea txaResult;
private JButton btnInsert;
private JButton btnquery;
private JButton btndelete;
private JButton btnmodify;
private JButton btnreset;
private JButton btnexit;
//菜单组件声明
private JMenuBar mnuMain =new JMenuBar();
private JMenu mnuFile =new JMenu("文件(F)");
private JMenu mnuEdit =new JMenu("编辑(E)");
private JMenu mnuHelp =new JMenu("帮助(H)");
private JMenuItem mnuFileConn =new JMenuItem("连接数据库");
private JMenuItem munFileDisconn=new JMenuItem("关闭数据库");
private JMenuItem mnuFileExit=new JMenuItem("退出(X)");
private JMenuItem mnuEditQuery=new JMenuItem("查询(Q)");
private JMenuItem mnuEditInsert=new JMenuItem("插入(I)");
private JMenuItem mnuEditDelete=new JMenuItem("删除(D)"); //mnuEditDelete.setEnabled(blnnewPanDuan);
private JMenuItem mnuEditModify=new JMenuItem("修改(M)"); //mnuEditModify.setEnabled(blnnewPanDuan);
private JMenuItem mnuHelpHelp=new JMenuItem("版本信息");
public QueryFrame(boolean blnPanDuan) //结构体
{
blnnewPanDuan=blnPanDuan;
setTitle("学籍管理系统");
setSize(WIDTH,HEIGHT);
txtStuno = new JTextField(); txtStuno.setToolTipText("请输入学号");
txtStuname = new JTextField();
txtStuage = new JTextField();
cbxStusex = new JComboBox();
cbxStupolitical = new JComboBox();
txtStuhometown = new JTextField();
txtStudept = new JTextField();
txtStuno_d = new JTextField();
cbxStusex.addItem("");
cbxStusex.addItem("男");
cbxStusex.addItem("女");
cbxStupolitical.addItem("无");
cbxStupolitical.addItem("团员");
cbxStupolitical.addItem("党员");
btnInsert = new JButton("添加"); btnInsert.setEnabled(blnnewPanDuan);
btnInsert.setToolTipText("增加新学生信息");
btndelete = new JButton("删除"); btndelete.setEnabled(blnnewPanDuan);
btndelete.setToolTipText("删除学生信息");
btnquery= new JButton("查询");
btnquery.setToolTipText("查寻学生信息请输入学号");
btnmodify = new JButton("修改"); btnmodify.setEnabled(blnnewPanDuan);
btnmodify.setToolTipText("修改学生信息请输入学号");
btnreset=new JButton("重置");
btnreset.setToolTipText("清空输入窗");
btnexit=new JButton("关闭数据库");
btnexit.setToolTipText("保护数据库");
btnInsert.addActionListener(this);
btndelete.addActionListener(this);
btnquery.addActionListener(this);
btnmodify.addActionListener(this);
btnreset.addActionListener(this);
btnexit.addActionListener(this);
//setMenuBar(mnuMain); 添加菜单组件
//getContentPane().add(mnuMain,BorderLayout.NORTH);
mnuMain.add(mnuFile); //mnuFile.addActionListener(this); 监听加到Item上才有效
mnuFile.add(mnuFileConn); mnuFileConn.addActionListener(this);
mnuFile.addSeparator();
mnuFile.add(munFileDisconn); munFileDisconn.addActionListener(this);
//mnuFileQuery.setMnemonic('F');
mnuFile.setMnemonic('F');
mnuFile.addSeparator();
mnuFile.add(mnuFileExit); mnuFileExit.addActionListener(this);
mnuFileExit.setMnemonic('X');
mnuMain.add(mnuEdit); //mnuEdit.addActionListener(this);
mnuEdit.setMnemonic('E');
mnuEdit.add(mnuEditQuery); mnuEditQuery.addActionListener(this);
mnuEditQuery.setMnemonic('Q');
mnuEdit.addSeparator();
mnuEdit.add(mnuEditInsert); mnuEditInsert.addActionListener(this);
mnuEditInsert.setMnemonic('I');
mnuEdit.addSeparator();
mnuEdit.add(mnuEditDelete); mnuEditDelete.addActionListener(this);
mnuEditDelete.setMnemonic('D');
mnuEdit.addSeparator();
mnuEdit.add(mnuEditModify); mnuEditModify.addActionListener(this);
mnuEditModify.setMnemonic('M');
mnuMain.add(mnuHelp);
mnuHelp.add(mnuHelpHelp); mnuHelpHelp.addActionListener(this);
mnuHelp.setMnemonic('H');
mnuEditInsert.setEnabled(blnnewPanDuan);
mnuEditDelete.setEnabled(blnnewPanDuan);
mnuEditModify.setEnabled(blnnewPanDuan);
txaResult = new JTextArea();
txaResult.setEditable(false);
pnlInsert = new JPanel();
pnlInsert.setLayout(new GridLayout(10,2));
pnlInsert.add(new Label("学 号:")); pnlInsert.add(txtStuno);
pnlInsert.add(new Label("姓 名:")); pnlInsert.add(txtStuname);
pnlInsert.add(new Label("年 龄:")); pnlInsert.add(txtStuage);
pnlInsert.add(new Label("性 别:")); pnlInsert.add(cbxStusex);
pnlInsert.add(new Label("政治面貌:")); pnlInsert.add(cbxStupolitical);
pnlInsert.add(new Label("籍 贯:")); pnlInsert.add(txtStuhometown);
pnlInsert.add(new Label("所 属 系:")); pnlInsert.add(txtStudept);
pnlInsert.add(btnquery); pnlInsert.add(btnInsert);pnlInsert.add(btndelete);
pnlInsert.add(btnmodify);pnlInsert.add(btnreset);pnlInsert.add(btnexit);
JScrollPane pane = new JScrollPane(txaResult);
JPanel pnlShow=new JPanel();
pnlShow.setLayout(new BorderLayout());
pnlShow.add(pane,BorderLayout.CENTER);
getContentPane().add(mnuMain,BorderLayout.NORTH);
JSplitPane split;
split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,pnlShow,pnlInsert);
split.setResizeWeight(1);
getContentPane().add(split,BorderLayout.CENTER);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent event)
{
try
{
stmt.close();
conn.close();
}
catch(SQLException e)
{
while(e != null)
{
e.printStackTrace();
e=e.getNextException();
}
}
}
});
try //建立数据库连接
{
conn = getConnection();
stmt = conn.createStatement();
}
catch(SQLException e)
{
while(e != null)
{
e.printStackTrace();
e=e.getNextException();
}
}
catch(IOException e)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -