(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/50932501 冷血之心的博客)
java
图形用户界面(Graphics User Interface,GUI)是用户与程序交互的窗口,比命令行的界面更加直观而且更好操做。sql
这是本人在学习Java图形界面开发阶段一步一步实现的超级简易的学生管理系统。虽说不入大神法眼,但这确实是费了本身很多心血。对于我这样的菜鸟来讲,考虑不周到,一不当心就Exception,而后就是本身调呀调。在此分享出来但愿对和我同样的菜鸟有帮助。数据库
该程序使用的数据库为SQL server,若是不太懂怎么使用java操做SQL server数据库的能够看看个人这篇博客,但愿能够帮到你们。小程序
Java程序操做数据库SQLserver详解 设计模式
程序完整代码下载地址见:jsp
http://download.csdn.net/detail/qq_25827845/9766699ide
步骤一:静态登陆界面的实现。函数
代码以下:布局
-
-
-
-
-
- import java.awt.*;
- import javax.swing.*;
- public class Login extends JFrame{
-
- JPanel jp1,jp2,jp3;
- JLabel jlb1,jlb2;
- JButton jb1,jb2;
- JTextField jtf;
- JPasswordField jpf;
- public static void main(String[] args) {
- Login win=new Login();
- }
-
-
- public Login(){
-
- jp1=new JPanel();
- jp2=new JPanel();
- jp3=new JPanel();
-
- jlb1=new JLabel("用户名");
- jlb2=new JLabel("密 码");
-
- jb1=new JButton("登陆");
- jb2=new JButton("重置");
-
- jtf=new JTextField(10);
-
- jpf=new JPasswordField(10);
-
-
- this.setLayout(new GridLayout(3, 1));
-
-
- jp1.add(jlb1);
- jp1.add(jtf);
-
- jp2.add(jlb2);
- jp2.add(jpf);
-
- jp3.add(jb1);
- jp3.add(jb2);
-
-
- this.add(jp1);
- this.add(jp2);
- this.add(jp3);
-
-
- this.setTitle("用户登陆");
- this.setSize(300, 150);
- this.setLocationRelativeTo(null);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- this.setVisible(true);
-
-
- this.setResizable(false);
- }
- }
运行界面如图所示:
本静态界面的实现,使用了网格布局,3行1列,在每一行中放入了一个JPanel面板,每一个面板上又分别放入所需的组件,总体构成了一个静态的登陆界面。学习
步骤二:添加监听,而且进行验证用户名和密码。
代码以下:
-
-
-
-
-
-
-
- package com.package_1;
- import javax.swing.*;
-
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
-
- public class Login extends JFrame implements ActionListener {
-
-
- JButton jb1,jb2=null;
- JRadioButton jrb1,jrb2=null;
- JPanel jp1,jp2,jp3,jp4=null;
- JTextField jtf=null;
- JLabel jlb1,jlb2,jlb3=null;
- JPasswordField jpf=null;
- ButtonGroup bg=null;
-
-
- final String stu_name="6";
- final String stu_pwd="1";
- final String tea_name="5";
- final String tea_pwd="1";
-
- public static void main(String[] args) {
-
- Login ms=new Login();
- }
- public Login()
- {
-
- jb1=new JButton("登陆");
- jb2=new JButton("重置");
-
- jb1.addActionListener(this);
- jb2.addActionListener(this);
-
- jrb1=new JRadioButton("教师");
- jrb2=new JRadioButton("学生");
- bg=new ButtonGroup();
- bg.add(jrb1);
- bg.add(jrb2);
- jrb2.setSelected(true);
-
- jp1=new JPanel();
- jp2=new JPanel();
- jp3=new JPanel();
- jp4=new JPanel();
-
- jlb1=new JLabel("用户名:");
- jlb2=new JLabel("密 码:");
- jlb3=new JLabel("权 限:");
-
- jtf=new JTextField(10);
- jpf=new JPasswordField(10);
-
- jp1.add(jlb1);
- jp1.add(jtf);
-
- jp2.add(jlb2);
- jp2.add(jpf);
-
- jp3.add(jlb3);
- jp3.add(jrb1);
- jp3.add(jrb2);
-
- jp4.add(jb1);
- jp4.add(jb2);
-
-
- this.add(jp1);
- this.add(jp2);
- this.add(jp3);
- this.add(jp4);
-
- this.setLayout(new GridLayout(4,1));
-
- this.setTitle("学生成绩管理系统");
-
- this.setSize(300,200);
-
- this.setLocation(200, 150);
-
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
- this.setVisible(true);
- this.setResizable(true);
-
- }
- @Override
- public void actionPerformed(ActionEvent e) {
-
- if(e.getActionCommand()=="登陆")
- {
-
- if(jrb1.isSelected())
- {
- tealogin();
- }else if(jrb2.isSelected())
- {
- stulogin();
- }
-
- }else if(e.getActionCommand()=="重置")
- {
- clear();
- }
-
- }
-
-
- public void stulogin()
- {
- if(stu_name.equals(jtf.getText())&&stu_pwd.equals(jpf.getText()))
- {
-
- JOptionPane.showMessageDialog(null,"登陆成功!","提示消息",JOptionPane.WARNING_MESSAGE);
- clear();
- }else if(jtf.getText().isEmpty()&&jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名和密码!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else if(jtf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else if(jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入密码!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else
- {
- JOptionPane.showMessageDialog(null,"用户名或者密码错误!\n请从新输入","提示消息",JOptionPane.ERROR_MESSAGE);
-
- clear();
- }
- }
-
- public void tealogin()
- {
- if(tea_name.equals(jtf.getText())&&tea_pwd.equals(jpf.getText()))
- {
-
- JOptionPane.showMessageDialog(null,"登陆成功!","提示消息",JOptionPane.WARNING_MESSAGE);
- clear();
- }else if(jtf.getText().isEmpty()&&jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名和密码!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else if(jtf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else if(jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入密码!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else
- {
- JOptionPane.showMessageDialog(null,"用户名或者密码错误!\n请从新输入","提示消息",JOptionPane.ERROR_MESSAGE);
-
- clear();
- }
- }
-
- public void clear()
- {
- jtf.setText("");
- jpf.setText("");
- }
-
- }
运行界面以下所示:


本程序加入了对各个组件的监听,首先implements ActionListener接口,而后注册监听。在ActionPerformance方法中进行相应的处理事件。
当点击登陆按钮时,首先判断是哪一个权限的用户在进行登陆,分别调用taelogin()和stulogin()方法来进行验证。在验证方法中,对文本框和密码框的内容进行一个判断,分别弹出不一样的提示信息。
步骤三:(1)程序链接数据库来进行用户名和密码的验证!!!
(2)验证成功后进行界面的切换!!!
代码以下:
-
-
-
-
-
-
-
- package com.package_2;
- import javax.swing.*;
-
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.sql.*;
-
- public class login extends JFrame implements ActionListener {
-
-
- JButton jb1,jb2,jb3=null;
- JRadioButton jrb1,jrb2=null;
- JPanel jp1,jp2,jp3,jp4=null;
- JTextField jtf=null;
- JLabel jlb1,jlb2,jlb3=null;
- JPasswordField jpf=null;
- ButtonGroup bg=null;
-
-
- static String userword;
- static String pwd;
-
- static Connection ct=null;
- PreparedStatement ps=null;
- ResultSet rs=null;
-
- public static void main(String[] args) {
-
- login ms=new login();
-
-
- try {
- Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
- ct=DriverManager.getConnection("jdbc:odbc:ywq");
- } catch (Exception e) {
-
- e.printStackTrace();
- }
-
- }
-
- public login()
- {
-
- jb1=new JButton("登陆");
- jb2=new JButton("重置");
- jb3=new JButton("退出");
-
- jb1.addActionListener(this);
- jb2.addActionListener(this);
- jb3.addActionListener(this);
-
-
-
-
-
-
-
-
-
-
-
-
-
- jrb1=new JRadioButton("教师");
- jrb2=new JRadioButton("学生");
- bg=new ButtonGroup();
- bg.add(jrb1);
- bg.add(jrb2);
- jrb2.setSelected(true);
-
- jp1=new JPanel();
- jp2=new JPanel();
- jp3=new JPanel();
- jp4=new JPanel();
-
- jlb1=new JLabel("用户名:");
- jlb2=new JLabel("密 码:");
- jlb3=new JLabel("权 限:");
-
- jtf=new JTextField(10);
- jpf=new JPasswordField(10);
-
- jp1.add(jlb1);
- jp1.add(jtf);
-
- jp2.add(jlb2);
- jp2.add(jpf);
-
- jp3.add(jlb3);
- jp3.add(jrb1);
- jp3.add(jrb2);
-
- jp4.add(jb1);
- jp4.add(jb2);
- jp4.add(jb3);
-
-
- this.add(jp1);
- this.add(jp2);
- this.add(jp3);
- this.add(jp4);
-
- this.setLayout(new GridLayout(4,1));
-
- this.setTitle("学生成绩管理系统");
-
- this.setSize(300,200);
-
- this.setLocation(200, 150);
-
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
- this.setVisible(true);
- this.setResizable(true);
-
- }
- @Override
- public void actionPerformed(ActionEvent e) {
-
- if(e.getActionCommand()=="退出")
- {
- System.exit(0);
- }else if(e.getActionCommand()=="登陆")
- {
-
- if(jrb1.isSelected())
- {
-
- try {
- ps=ct.prepareStatement("select * from info where 权限=? ");
-
- ps.setString(1, "教师");
-
- rs=ps.executeQuery();
-
- while(rs.next()){
-
- userword=rs.getString(2);
- pwd=rs.getString(3);
- System.out.println("成功获取到密码和用户名from数据库");
- System.out.println(userword+"\t"+pwd+"\t");
- }
- } catch (SQLException e1) {
-
- e1.printStackTrace();
- }
-
- tealogin();
- }else if(jrb2.isSelected())
- {
-
- try {
- ps=ct.prepareStatement("select * from info where 权限=? ");
-
- ps.setString(1, "学生");
-
- rs=ps.executeQuery();
-
- while(rs.next()){
-
- userword=rs.getString(2);
- pwd=rs.getString(3);
- System.out.println("成功获取到密码和用户名from数据库");
- System.out.println(userword+"\t"+pwd+"\t");
- }
- } catch (SQLException e1) {
-
- e1.printStackTrace();
- }
-
- stulogin();
- }
-
- }else if(e.getActionCommand()=="重置")
- {
- clear();
- }
-
- }
-
-
-
- public void clear()
- {
- jtf.setText("");
- jpf.setText("");
- }
-
- public void stulogin()
- {
- if(userword.equals(jtf.getText())&&pwd.equals(jpf.getText()))
- {
-
- JOptionPane.showMessageDialog(null,"登陆成功!","提示消息",JOptionPane.WARNING_MESSAGE);
- clear();
-
- dispose();
-
- UI ui=new UI();
- }else if(jtf.getText().isEmpty()&&jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名和密码!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else if(jtf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else if(jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入密码!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else
- {
- JOptionPane.showMessageDialog(null,"用户名或者密码错误!\n请从新输入","提示消息",JOptionPane.ERROR_MESSAGE);
-
- clear();
- }
- }
-
-
- public void tealogin()
- {
- if(userword.equals(jtf.getText())&&pwd.equals(jpf.getText()))
- {
-
- JOptionPane.showMessageDialog(null,"登陆成功!","提示消息",JOptionPane.WARNING_MESSAGE);
- clear();
-
- dispose();
-
- UI ui=new UI();
- }else if(jtf.getText().isEmpty()&&jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名和密码!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else if(jtf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else if(jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入密码!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else
- {
- JOptionPane.showMessageDialog(null,"用户名或者密码错误!\n请从新输入","提示消息",JOptionPane.ERROR_MESSAGE);
-
- clear();
- }
- }
-
-
-
- }
首先创建相应的数据库,如图所示:

在程序中,首先是在主函数中(1)加载数据库驱动 。(2)创建链接
此处有问题,可参考博客 http://blog.csdn.net/qq_25827845/article/details/50836362
在进行验证时,经过创建“火箭车”将所需的SQL语句发送到数据库,而且查询获得相应的数据。利用此数据和用户输入的用户名和密码进行验证。当验证成功时,即进行界面的跳转。
页面跳转关键部分:
(1)调用dispose()方法关闭当前界面
(2)从新new一个新界面,好比本例中的new UI();其中,UI是另外一个完整的界面。
如此实现了界面的切换。
UI界面的代码以下:
- package com.package_2;
-
- import java.awt.*;
- import java.awt.event.*;
-
- import javax.swing.*;
-
- public class UI extends JFrame implements ActionListener
- {
-
-
- JButton jb1,jb2=null;
- JPanel jp1,jp2,jp3=null;
- JLabel jlb1,jlb2,jlb3,jlb4=null;
-
- public static void main(String[] args) {
-
-
- }
-
-
- public UI()
- {
-
- jb1=new JButton("课程管理");
- jb2=new JButton("成绩查询");
-
- jp1=new JPanel();
- jp2=new JPanel();
- jp3=new JPanel();
-
- jlb1=new JLabel("姓名");
- jlb2=new JLabel("学号");
- jlb3=new JLabel("最新公告:");
- jlb4=new JLabel("我校举行六十周年校庆的通知");
-
- jp1.add(jlb1);
- jp1.add(jlb2);
-
- jp2.add(jb1);
- jp2.add(jlb3);
-
- jp3.add(jb2);
- jp3.add(jlb4);
-
-
- this.add(jp1);
- this.add(jp2);
- this.add(jp3);
-
-
- this.setLayout(new GridLayout(3,3,50,50));
- this.setTitle("学生成绩管理系统");
- this.setSize(400,300);
- this.setLocation(200, 200);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- this.setVisible(true);
-
- }
- @Override
- public void actionPerformed(ActionEvent e) {
-
-
- }
- }
以上程序的执行结果如图所示:


步骤4:(1)程序链接数据库来进行用户名和密码的验证!!!
(2)验证成功后进行界面的切换!!!【对步骤三的代码进行必定的优化】
代码以下:Login.java
-
-
-
-
-
-
-
-
- package com.package_5;
- import javax.swing.*;
-
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.sql.*;
-
- public class Login extends JFrame implements ActionListener {
-
-
- JButton jb1,jb2,jb3=null;
- JRadioButton jrb1,jrb2=null;
- JPanel jp1,jp2,jp3,jp4=null;
- JTextField jtf=null;
- JLabel jlb1,jlb2,jlb3=null;
- JPasswordField jpf=null;
- ButtonGroup bg=null;
-
-
- JMenuBar jmb=null;
- JMenu jm=null;
- JMenuItem jmi1,jmi2=null;
-
-
- public static void main(String[] args) {
-
- Login ms=new Login();
-
-
- }
-
- public Login()
- {
-
- jb1=new JButton("登陆");
- jb2=new JButton("重置");
- jb3=new JButton("退出");
-
- jb1.addActionListener(this);
- jb2.addActionListener(this);
- jb3.addActionListener(this);
-
- jmb=new JMenuBar();
- jm=new JMenu("选项");
- jmi1=new JMenuItem("开始");
- jmi2=new JMenuItem("退出系统");
- jm.add(jmi1);
- jm.add(jmi2);
- jmb.add(jm);
-
-
- jrb1=new JRadioButton("教师",true);
- jrb2=new JRadioButton("学生");
- bg=new ButtonGroup();
- bg.add(jrb1);
- bg.add(jrb2);
-
-
- jp1=new JPanel();
- jp2=new JPanel();
- jp3=new JPanel();
- jp4=new JPanel();
-
- jlb1=new JLabel("用户名:");
- jlb2=new JLabel("密 码:");
- jlb3=new JLabel("权 限:");
-
- jtf=new JTextField(10);
- jpf=new JPasswordField(10);
-
- jp1.add(jlb1);
- jp1.add(jtf);
-
- jp2.add(jlb2);
- jp2.add(jpf);
-
- jp3.add(jlb3);
- jp3.add(jrb1);
- jp3.add(jrb2);
-
- jp4.add(jb1);
- jp4.add(jb2);
- jp4.add(jb3);
-
-
- this.setJMenuBar(jmb);
- this.add(jp1);
- this.add(jp2);
- this.add(jp3);
- this.add(jp4);
-
- this.setLayout(new GridLayout(4,1));
-
- this.setTitle("学生成绩管理系统");
-
- this.setSize(300,250);
-
- this.setLocation(200, 150);
-
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
- this.setVisible(true);
- this.setResizable(true);
-
- }
- @Override
- public void actionPerformed(ActionEvent e) {
-
- if(e.getActionCommand()=="退出")
- {
- System.exit(0);
- }else if(e.getActionCommand()=="登陆")
- {
-
- GetSQL.ConnectSQL();
-
- if(jrb1.isSelected())
- {
- GetSQL.sqlquery("教师");
-
- this.tealogin();
- }else if(jrb2.isSelected())
- {
- GetSQL.sqlquery("学生");
-
- this.stulogin();
- }
-
- }else if(e.getActionCommand()=="重置")
- {
- this.clear();
- }
-
- }
-
-
- public void clear()
- {
- jtf.setText("");
- jpf.setText("");
- }
-
- public void stulogin()
- {
- if(GetSQL.userword.equals(jtf.getText())&&GetSQL.pwd.equals(jpf.getText()))
- {
-
- JOptionPane.showMessageDialog(null,"登陆成功!","提示消息",JOptionPane.WARNING_MESSAGE);
- this.clear();
-
- dispose();
-
- Stu_UI ui=new Stu_UI();
- }else if(jtf.getText().isEmpty()&&jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名和密码!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else if(jtf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else if(jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入密码!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else
- {
- JOptionPane.showMessageDialog(null,"用户名或者密码错误!\n请从新输入","提示消息",JOptionPane.ERROR_MESSAGE);
-
- this.clear();
- }
- }
-
-
- public void tealogin()
- {
- if(GetSQL.userword.equals(jtf.getText())&&GetSQL.pwd.equals(jpf.getText()))
- {
-
- JOptionPane.showMessageDialog(null,"登陆成功!","提示消息",JOptionPane.WARNING_MESSAGE);
- this.clear();
-
- dispose();
-
- Teacher t=new Teacher();
- }else if(jtf.getText().isEmpty()&&jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名和密码!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else if(jtf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else if(jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入密码!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else
- {
- JOptionPane.showMessageDialog(null,"用户名或者密码错误!\n请从新输入","提示消息",JOptionPane.ERROR_MESSAGE);
-
- this.clear();
- }
- }
-
- }
SQL.java 负责与数据库创建链接,包括俩方法。一个是链接数据库方法,一个是查询方法。可进一步扩展。
- package com.package_5;
-
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
-
-
- class GetSQL
- {
-
- static String userword;
- static String pwd;
-
- static Connection ct=null;
- static PreparedStatement ps=null;
- static ResultSet rs=null;
-
-
- public static void ConnectSQL()
- {
- try {
- Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
- ct=DriverManager.getConnection("jdbc:odbc:ywq");
- } catch (Exception e) {
-
- e.printStackTrace();
- }
-
- }
-
- public static void sqlquery(String s)
- {
-
- try {
- ps=ct.prepareStatement("select * from info where 权限=? ");
-
- ps.setString(1, s);
-
- rs=ps.executeQuery();
-
- while(rs.next()){
-
- userword=rs.getString(2);
- pwd=rs.getString(3);
- System.out.println("成功获取到密码和用户名from数据库");
- System.out.println(userword+"\t"+pwd+"\t");
- }
- } catch (Exception e1) {
-
- e1.printStackTrace();
- }
- }
- }
Stu_UI.java 学生登陆成功后跳转的界面
- package com.package_5;
-
- import java.awt.*;
- import java.awt.event.*;
-
- import javax.swing.*;
-
- public class Stu_UI extends JFrame implements ActionListener
- {
-
-
- JButton jb1,jb2=null;
- JPanel jp1,jp2,jp3=null;
- JLabel jlb1,jlb2,jlb3,jlb4=null;
-
-
-
-
-
-
- public Stu_UI()
- {
-
- jb1=new JButton("课程管理");
- jb2=new JButton("成绩查询");
-
- jp1=new JPanel();
- jp2=new JPanel();
- jp3=new JPanel();
-
- jlb1=new JLabel("姓名");
- jlb2=new JLabel("学号");
- jlb3=new JLabel("最新公告:");
- jlb4=new JLabel("我校举行六十周年校庆的通知");
-
- jp1.add(jlb1);
- jp1.add(jlb2);
-
- jp2.add(jb1);
- jp2.add(jlb3);
-
- jp3.add(jb2);
- jp3.add(jlb4);
-
-
- this.add(jp1);
- this.add(jp2);
- this.add(jp3);
-
-
- this.setLayout(new GridLayout(3,3,50,50));
- this.setTitle("学生成绩管理系统");
- this.setSize(400,300);
- this.setLocation(200, 200);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- this.setVisible(true);
-
- }
- @Override
- public void actionPerformed(ActionEvent e) {
-
-
- }
- }
Teacher.java 教师登陆成功后跳转的界面。
- package com.package_5;
-
- import javax.swing.*;
-
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
-
- public class Teacher extends JFrame implements ActionListener{
-
-
- JLabel jl2=null;
- JTextField jtf=null;
- JButton jb=null;
- JPanel jp1,jp2=null;
- JTable jtable=null;
-
- String name=null;
- String num=null;
-
- static Connection ct=null;
- PreparedStatement ps=null;
- ResultSet rs=null;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- public Teacher()
- {
-
- jl2=new JLabel("请输入学号:");
- jtf=new JTextField(10);
- jb=new JButton("查询");
-
- jb.addActionListener(this);
-
- final Object[] columnNames = {"姓名","学号"};
- Object[][] rowData = {
- {"小明","2015110512"},
- {"小","2015110"},
- {"小红","2015110511"}
- };
- jtable=new JTable(rowData, columnNames);
-
- jp1=new JPanel();
- jp2=new JPanel();
-
- jp1.add(jl2);
- jp1.add(jtf);
- jp1.add(jb);
- jp2.add(jtable);
-
- this.add(jp1);
- this.add(jp2);
-
- this.setLayout(new GridLayout(2,3));
- this.setTitle("学生成绩管理系统—教师");
- this.setSize(500,400);
- this.setLocation(200, 200);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- this.setVisible(true);
-
-
- }
-
-
- @Override
- public void actionPerformed(ActionEvent e) {
-
- if(e.getActionCommand()=="查询")
- {
-
-
- try {
- ps=ct.prepareStatement("select * from info where xuehao=? ");
-
- ps.setString(1, jtf.getText());
-
- rs=ps.executeQuery();
-
- if(rs.next())
- {
- name=rs.getString(5);
- System.out.println("查询成功from数据库");
- System.out.println(name+"\t");
- JOptionPane.showMessageDialog(null,"查询成功!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else
- {
- System.out.println("查询失败");
- JOptionPane.showMessageDialog(null,"查询失败!","提示消息",JOptionPane.WARNING_MESSAGE);
- }
-
-
-
-
-
-
-
- } catch (SQLException e1) {
-
- e1.printStackTrace();
- }
-
-
- }
-
- }
- }
步骤5:优化数据库验证条件,使用不一样的表来进行查询。
教师界面增长查询功能。
代码以下:Login6.java
-
-
-
-
-
-
-
-
-
-
-
- package com.package_7;
- import javax.swing.*;
-
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.sql.*;
-
- public class Login6 extends JFrame implements ActionListener {
-
-
- JButton jb1,jb2,jb3=null;
- JRadioButton jrb1,jrb2=null;
- JPanel jp1,jp2,jp3,jp4=null;
- JTextField jtf=null;
- JLabel jlb1,jlb2,jlb3=null;
- JPasswordField jpf=null;
- ButtonGroup bg=null;
-
-
- JMenuBar jmb=null;
- JMenu jm=null;
- JMenuItem jmi1,jmi2=null;
-
-
- public static void main(String[] args) {
-
- Login6 ms=new Login6();
-
-
- }
-
- public Login6()
- {
-
- jb1=new JButton("登陆");
- jb2=new JButton("重置");
- jb3=new JButton("退出");
-
- jb1.addActionListener(this);
- jb2.addActionListener(this);
- jb3.addActionListener(this);
-
- jmb=new JMenuBar();
- jm=new JMenu("选项");
- jmi1=new JMenuItem("开始");
- jmi2=new JMenuItem("退出系统");
- jm.add(jmi1);
- jm.add(jmi2);
- jmb.add(jm);
-
-
- jrb1=new JRadioButton("教师",true);
- jrb2=new JRadioButton("学生");
- bg=new ButtonGroup();
- bg.add(jrb1);
- bg.add(jrb2);
-
-
- jp1=new JPanel();
- jp2=new JPanel();
- jp3=new JPanel();
- jp4=new JPanel();
-
- jlb1=new JLabel("用户名:");
- jlb2=new JLabel("密 码:");
- jlb3=new JLabel("权 限:");
-
- jtf=new JTextField(10);
- jpf=new JPasswordField(10);
-
- jp1.add(jlb1);
- jp1.add(jtf);
-
- jp2.add(jlb2);
- jp2.add(jpf);
-
- jp3.add(jlb3);
- jp3.add(jrb1);
- jp3.add(jrb2);
-
- jp4.add(jb1);
- jp4.add(jb2);
- jp4.add(jb3);
-
-
- this.setJMenuBar(jmb);
- this.add(jp1);
- this.add(jp2);
- this.add(jp3);
- this.add(jp4);
-
- this.setLayout(new GridLayout(4,1));
-
- this.setTitle("学生成绩管理系统");
-
- this.setSize(300,250);
-
- this.setLocation(200, 150);
-
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
- this.setVisible(true);
- this.setResizable(true);
-
- }
- @Override
- public void actionPerformed(ActionEvent e) {
-
- if(e.getActionCommand()=="退出")
- {
- System.exit(0);
- }else if(e.getActionCommand()=="登陆")
- {
- if(!jtf.getText().isEmpty() && !jpf.getText().isEmpty())
- {
-
- GetSQL.ConnectSQL();
-
- if(jrb1.isSelected())
- {
- GetSQL.querytea("教师",jtf.getText());
-
- if(GetSQL.pwd ==null)
- {
- this.clear();
- }else
- {
-
- this.tealogin();
- }
- }else if(jrb2.isSelected())
- {
- GetSQL.querystu("学生",jtf.getText());
-
- if(GetSQL.pwd ==null)
- {
- this.clear();
- }else
- {
-
- this.stulogin();
- }
-
- }
- }else if(jtf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名","提示消息",JOptionPane.WARNING_MESSAGE);
- this.clear();
- }else if(jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入密码","提示消息",JOptionPane.WARNING_MESSAGE);
- this.clear();
- }
- }else if(e.getActionCommand()=="重置")
- {
- this.clear();
- }
-
- }
-
-
- public void clear()
- {
- jtf.setText("");
- jpf.setText("");
- }
-
- public void stulogin()
- {
- if(GetSQL.pwd.equals(jpf.getText()))
- {
-
- JOptionPane.showMessageDialog(null,"登陆成功!","提示消息",JOptionPane.WARNING_MESSAGE);
- this.clear();
-
- dispose();
-
- Stu_UI6 ui=new Stu_UI6();
- }else if(jtf.getText().isEmpty()&&jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名和密码!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else if(jtf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else if(jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入密码!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else
- {
- JOptionPane.showMessageDialog(null,"用户名或者密码错误!\n请从新输入","提示消息",JOptionPane.ERROR_MESSAGE);
-
- this.clear();
- }
- }
-
-
- public void tealogin()
- {
- if(GetSQL.pwd.equals(jpf.getText()))
- {
-
- JOptionPane.showMessageDialog(null,"登陆成功!","提示消息",JOptionPane.WARNING_MESSAGE);
- this.clear();
-
- dispose();
-
- Teacher6 t=new Teacher6();
- }else if(jtf.getText().isEmpty()&&jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名和密码!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else if(jtf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入用户名!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else if(jpf.getText().isEmpty())
- {
- JOptionPane.showMessageDialog(null,"请输入密码!","提示消息",JOptionPane.WARNING_MESSAGE);
- }else
- {
- JOptionPane.showMessageDialog(null,"用户名或者密码错误!\n请从新输入","提示消息",JOptionPane.ERROR_MESSAGE);
-
- this.clear();
- }
- }
-
- }
SQL.java
-
-
-
- package com.package_7;
-
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
-
- import javax.swing.JOptionPane;
-
-
- class GetSQL {
-
- static String userword;
- static String pwd;
-
- static String english;
- static String num;
- static String name;
- static String chinese;
- static String zhengzhi;
- static String math;
-
- static String age;
- static String salary;
- static String sex;
- static String zhicheng;
- static String teanum;
- static String teaname;
-
- static Connection ct = null;
- static PreparedStatement ps = null;
- static ResultSet rs = null;
-
-
- public static void ConnectSQL() {
- try {
- Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
- ct = DriverManager.getConnection("jdbc:odbc:ywq");
- System.out.println("The SQL is connected");
- } catch (Exception e) {
-
- e.printStackTrace();
- }
-
- }
-
-
- public static void querystu(String s,String username) {
-
- try {
- ps = ct.prepareStatement("select * from info where 权限=? and 用户名=? ");
-
- ps.setString(1, s);
- ps.setString(2, username);
-
- rs = ps.executeQuery();
-
- if (rs.next()) {
-
- userword = rs.getString(2);
- pwd = rs.getString(3);
- System.out.println("成功获取到密码和用户名from数据库");
- System.out.println(userword + "\t" + pwd + "\t");
- }else
- {
- JOptionPane.showMessageDialog(null, "没有此用户,请从新输入!", "提示消息", JOptionPane.WARNING_MESSAGE);
- }
- } catch (Exception e1) {
-
- e1.printStackTrace();
- }
- }
-
- public static void querytea(String s,String name ) {
-
- try {
- ps = ct.prepareStatement("select * from info_tea where 权限=? and 用户名=? ");
-
- ps.setString(1, s);
- ps.setString(2, name);
-
- rs = ps.executeQuery();
-
- if (rs.next()) {
-
- userword = rs.getString(2);
- pwd = rs.getString(3);
- System.out.println("成功获取到密码和用户名from数据库");
- System.out.println(userword + "\t" + pwd + "\t");
- }else
- {
- JOptionPane.showMessageDialog(null, "没有此用户,请从新输入!", "提示消息", JOptionPane.WARNING_MESSAGE);
- }
- } catch (Exception e1) {
-
- e1.printStackTrace();
- }
- }
-
-
- public static void getdatastu(String s) {
-
- try {
- ps = ct.prepareStatement("select * from info where 学号 =? ");
-
- ps.setString(1, s);
-
- rs = ps.executeQuery();
- if(rs.next())
- {
-
- num = rs.getString(4);
- name = rs.getString(5);
- math = rs.getString(6);
- chinese = rs.getString(7);
- english = rs.getString(8);
- zhengzhi = rs.getString(9);
- }else
- {
- JOptionPane.showMessageDialog(null, "沒有此学生,请从新输入", "提示消息", JOptionPane.WARNING_MESSAGE);
- }
-
- } catch (Exception e1) {
-
- e1.printStackTrace();
- }
- }
- public static void getdatatea(String s) {
-
- try {
- ps = ct.prepareStatement("select * from info_tea where 教师编号号 =? ");
-
- ps.setString(1, s);
-
- rs = ps.executeQuery();
- if(rs.next())
- {
-
- teanum = rs.getString(4);
- teaname = rs.getString(5);
- sex = rs.getString(6);
- salary = rs.getString(7);
- zhicheng = rs.getString(8);
- age = rs.getString(9);
- }else
- {
- JOptionPane.showMessageDialog(null, "沒有此教师,请从新输入", "提示消息", JOptionPane.WARNING_MESSAGE);
- }
-
- } catch (Exception e1) {
-
- e1.printStackTrace();
- }
- }
-
- }
Stu_UI6.java
-
-
-
-
- package com.package_7;
-
- import java.awt.*;
- import java.awt.event.*;
-
- import javax.swing.*;
-
- public class Stu_UI6 extends JFrame implements ActionListener
- {
-
-
- JButton jb1,jb2=null;
- JPanel jp1,jp2,jp3=null;
- JLabel jlb1,jlb2,jlb3,jlb4=null;
-
-
-
-
-
-
- public Stu_UI6()
- {
-
- jb1=new JButton("课程管理");
- jb2=new JButton("成绩查询");
-
- jp1=new JPanel();
- jp2=new JPanel();
- jp3=new JPanel();
-
- jlb1=new JLabel("姓名");
- jlb2=new JLabel("学号");
- jlb3=new JLabel("最新公告:");
- jlb4=new JLabel("我校举行六十周年校庆的通知");
-
- jp1.add(jlb1);
- jp1.add(jlb2);
-
- jp2.add(jb1);
- jp2.add(jlb3);
-
- jp3.add(jb2);
- jp3.add(jlb4);
-
-
- this.add(jp1);
- this.add(jp2);
- this.add(jp3);
-
-
- this.setLayout(new GridLayout(3,3,50,50));
- this.setTitle("学生成绩管理系统");
- this.setSize(400,300);
- this.setLocation(200, 200);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- this.setVisible(true);
-
- }
- @Override
- public void actionPerformed(ActionEvent e) {
-
-
- }
- }
Teacher.java
-
-
-
-
- package com.package_7;
-
- import javax.swing.*;
- import javax.swing.table.DefaultTableModel;
-
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
-
- public class Teacher6 extends JFrame implements ActionListener {
-
-
- JLabel jl2,jl,jl3,jl4 = null;
- JTextField jtf,jtf2 = null;
- JButton jb,jb2 = null;
- JPanel jp1, jp2,jp3,jp4,jp5,jp6 = null;
-
- DefaultTableModel model,model2 = null;
- JTable table,table2 = null;
- JScrollPane jsp,jsp2 = null;
-
-
-
-
-
-
-
- public Teacher6() {
-
- jl = new JLabel("请输入学号:");
- jl2=new JLabel("请输入教工号:");
-
- jl3=new JLabel("学生信息表:");
- jl4=new JLabel("教师信息表:");
-
- jtf = new JTextField(10);
- jtf2 = new JTextField(10);
- jb = new JButton("查询1");
- jb2 = new JButton("查询2");
-
- jb.addActionListener(this);
- jb2.addActionListener(this);
-