实训第十天

1.登陆界面:

package com.zbdx.ui;

import com.zbdx.dao.ManagerDao;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Login extends JFrame {

    private JTextField userNameField = new JTextField();
    private JPasswordField passwordField = new JPasswordField();

    private JButton loginBtn = new JButton("登录");
    private JButton resetBtn = new JButton("重置");

    private JLabel userNameText = new JLabel("用户名:", JLabel.CENTER);
    private JLabel passwordText = new JLabel("密  码:", JLabel.CENTER);
    private JLabel titleText = new JLabel("员工管理系统");

    //无参构造
    public Login() {
        //创建窗体对象
        setTitle("登录");
        //设置字体
        Font font = new Font("新宋体", Font.BOLD, 25);
        //获取当前窗体的容器
        Container container = getContentPane();
        //设置布局管理器
        container.setLayout(null);
        //设置上面定义好的组件的显示位置
        titleText.setBounds(250, 20, 200, 50);
        titleText.setFont(new Font("新宋体", Font.BOLD, 30));

        userNameText.setBounds(125, 100, 125, 50);
        userNameText.setFont(font);

        userNameField.setBounds(250, 100, 250, 50);
        userNameField.setFont(font);

        passwordText.setBounds(125, 200, 125, 50);
        passwordText.setFont(font);

        passwordField.setBounds(250, 200, 250, 50);
        passwordField.setFont(font);

        loginBtn.setBounds(225, 300, 125, 50);
        loginBtn.setFont(font);

        resetBtn.setBounds(375, 300, 125, 50);
        resetBtn.setFont(font);
        //向容器中添加title文本
        container.add(titleText);
        container.add(userNameText);
        container.add(userNameField);
        container.add(passwordText);
        container.add(passwordField);
        container.add(loginBtn);
        container.add(resetBtn);
        //获取屏幕的大小
        Toolkit toolkit = Toolkit.getDefaultToolkit();
        int width = toolkit.getScreenSize().width;
        int height = toolkit.getScreenSize().height;
        //设置窗体的显示位置和大小
        setBounds((width - 700) / 2, (height - 500) / 2, 700, 500);
        //显示窗体
        setVisible(true);

        loginBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                String userName = userNameField.getText().trim();//获取用户名输入的内容并去掉空格
                String password = passwordField.getText().trim();//获取密码输入的内容并去掉空格
                //判断用户名和密码是否为空
                if ("".equals(userName)) {
                    JOptionPane.showMessageDialog(null, "用户名不能为空...");
                } else if ("".equals(password)) {
                    System.out.println("密码不能为空");
                    JOptionPane.showMessageDialog(null, "密码不能为空...");
                } else {
                    //根据用户输入的用户名和密码从数据库查询相关的数据
                    boolean result = ManagerDao.login(userName, password);
                    //判断是否登录成功
                    if (result) {
                        //登录成功进行页面的跳转--弹出主页面
                        JOptionPane.showMessageDialog(null, "登陆成功");
                        new Main();
                        //让登录界面隐藏
                        setVisible(false);
                    } else {
                        JOptionPane.showMessageDialog(null, "用户名或者密码错误...");
                    }
                }
            }
        });

        resetBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                userNameField.setText("");
                passwordField.setText("");
            }
        });

    }

    public static void main(String[] args) {
        new Login();
    }
}
package com.zbdx.dao;

import com.zbdx.util.DBUtils;

import java.sql.*;

//用户管理持久层类
public class ManagerDao {
    //根据用户名和密码查询数据库中的数据
    public static boolean login(String userName,String password){
        boolean result = false;
        try {
            //获取数据库连接对象
            Connection connection = DBUtils.getConnection();
            //编写sql语句
            String sql = "select * from manager where mname = ? and mpsw = ?";
            //获取sql语句的对象
            PreparedStatement pst = connection.prepareStatement(sql);
            pst.setString(1,userName);
            pst.setString(2,password);
            //执行sql语句
            ResultSet resultSet = pst.executeQuery();//查询的结果集
            //从结果集中获取数据
            while(resultSet.next()){
                result = true;
            }
            //释放资源
            DBUtils.close(connection,pst,resultSet);
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return result;
    }
}

2.主界面:

package com.zbdx.ui;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Main extends JFrame {//窗体的子类
    private CardLayout cardLayout = null;
    private JTable table = null;
    //定义两个参数用于传参
    private JTable jTable = null;
    private DefaultTableModel model = null;

    //无参构造
    public Main() {
        //创建窗体对象
        setTitle("基本信息查询");
        //设置字体
        Font font = new Font("新宋体", Font.PLAIN, 30);
        //获取当前窗体的容器
        Container container = getContentPane();
        //设置布局管理器  卡片布局
        cardLayout = new CardLayout();
        container.setLayout(cardLayout);
        //添加菜单
        addMenu();
        //添加功能页面
        //container.add("dept", new DeptManager());
        container.add("emp",new EmpManager());

        //获取屏幕的大小
        Toolkit toolkit = Toolkit.getDefaultToolkit();
        int width = toolkit.getScreenSize().width;
        int height = toolkit.getScreenSize().height;
        //设置窗体的显示位置大小
        setBounds((width - 1000) / 2, (height - 800) / 2, 1000, 800);
        //显示窗体
        setVisible(true);
    }

    //给主界面添加菜单
    public void addMenu() {
//        Container container = getContentPane();
//        //设置布局管理器  卡片布局
//        cardLayout = new CardLayout();
//        container.setLayout(cardLayout);
        Font font = new Font("新宋体", Font.PLAIN, 30);//指定文字的
        JMenuBar jMenuBar = new JMenuBar();//用来添加菜单的
        //实例化菜单
        //第一个菜单及其子菜单
        JMenu first = new JMenu("系统管理");
        first.setFont(font);
        //添加子菜单
        JMenuItem password = new JMenuItem("修改密码");
        password.setFont(font);
        JMenuItem exit = new JMenuItem("退出程序");
        exit.setFont(font);
        password.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //弹出一个新的窗口

            }
        });
        exit.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.exit(0);//退出程序
            }
        });

        first.add(password);
        first.add(exit);

        //第二个菜单及其子菜单
        JMenu second = new JMenu("增加信息");
        second.setFont(font);
        //添加子菜单
        JMenuItem empM = new JMenuItem("增加员工信息");
        empM.setFont(font);
        JMenuItem deptM = new JMenuItem("增加部门信息");
        deptM.setFont(font);

        empM.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {

            }
        });

        deptM.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {

            }
        });

        second.add(empM);
        second.add(deptM);

        //第三个菜单及其子菜单
        JMenu third = new JMenu("信息查询");
        third.setFont(font);
        //添加子菜单
        JMenuItem deptS = new JMenuItem("部门信息查询");
        deptS.setFont(font);
        JMenuItem empS = new JMenuItem("员工信息查询");
        empS.setFont(font);

        third.add(deptS);
        third.add(empS);
        deptS.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //container.add("dept",new DeptManager());
            }
        });
        empS.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //container.add("emp",new EmpManager());
            }
        });

        //第四个菜单及其子菜单
        JMenu forth = new JMenu("帮助");
        forth.setFont(font);

        //第五个菜单及其子菜单
        JMenu fifth = new JMenu("关于");
        fifth.setFont(font);
        //将菜单放入JMenuBar李
        jMenuBar.add(first);
        jMenuBar.add(second);
        jMenuBar.add(third);
        jMenuBar.add(forth);
        jMenuBar.add(fifth);
        setJMenuBar(jMenuBar);//将菜单添加到左上方
    }

    public static void main(String[] args) {
        new Main();
    }
}
package com.zbdx.ui;

import com.zbdx.dao.EmpDao;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.*;

public class EmpManager extends JPanel {
    private static final long serialVersionUID = 1L;
    //添加信息
    private JLabel showMsg = new JLabel("员工基本信息查询");
    private JLabel empnoLab = new JLabel("员工编号:");
    private JLabel enameLab = new JLabel("员工姓名:");
    //两个输入框
    private JTextField empnoField = new JTextField();//同来填写员工编号的
    private JTextField enameField = new JTextField();//同来填写员工姓名的
    //查询按钮
    private JButton searchBtn = new JButton("查询");
    //表格
    private JTable table = null;
    //执行表格列名称
    private String[] colsName = {"员工编号", "员工名称", "工作岗位", "薪资", "部门编号", "雇佣日期"};
    private DefaultTableModel dtm = null;//主要是用来封装数据的
    //定义两个属性用于传参
    private JTable jTable = null;
    private DefaultTableModel model = null;

    public EmpManager() {
        this.setLayout(null);
        //实例化其他内容
        Font f = new Font("宋体", Font.PLAIN, 25);
        empnoLab.setBounds(20, 100, 300, 50);
        empnoLab.setFont(f);
        add(empnoLab);
        enameLab.setBounds(20, 150, 300, 50);
        enameLab.setFont(f);
        add(enameLab);
        //添加文本输入框
        empnoField.setBounds(150, 100, 150, 40);
        empnoField.setFont(f);
        add(empnoField);
        enameField.setBounds(150, 150, 150, 40);
        enameField.setFont(f);
        add(enameField);
        //添加按钮
        searchBtn.setBounds(150, 250, 150, 50);
        searchBtn.setFont(new Font("新宋体", Font.PLAIN, 25));
        add(searchBtn);
        //添加提示
        showMsg.setBounds(500, 20, 300, 50);
        showMsg.setFont(new Font("新宋体", Font.BOLD, 30));
        add(showMsg);
        //添加Table
        dtm = new DefaultTableModel() {//可以消除内容双击获取焦点
            @Override
            public boolean isCellEditable(int row, int column) {
                return false;//内容不可编辑
            }
        };
        table = new JTable(dtm);
        JScrollPane pane = new JScrollPane();
        pane.getViewport().add(table);
        dtm.setColumnCount(6);
        dtm.setColumnIdentifiers(colsName);
        pane.setBounds(400, 100, 500, 400);
        add(pane);
        //给要传值的内容赋值
        this.jTable = table;
        this.model = dtm;
        //给内容添加边框
        empnoField.setBorder(BorderFactory.createLineBorder(Color.BLACK));
        enameField.setBorder(BorderFactory.createLineBorder(Color.BLACK));
        searchBtn.setBorder(BorderFactory.createLineBorder(Color.BLACK));
        pane.setBorder(BorderFactory.createLineBorder(Color.BLACK));
        //获取数据库的数据渲染到表格中
        EmpDao.getAllEmps(dtm);

        //给表格中的数据添加事件
        table.addMouseListener(new MouseListener() {

            @Override
            public void mouseReleased(MouseEvent e) {//弹起鼠标执行此方法
            }

            @Override
            public void mousePressed(MouseEvent e) {//按下鼠标执行的方法
            }

            @Override
            public void mouseExited(MouseEvent e) {//失去焦点的时候执行此方法
            }

            @Override
            public void mouseEntered(MouseEvent e) {//获取焦点则执行此方法
            }

            @Override
            public void mouseClicked(MouseEvent e) {//完成点击执行此方法

            }
        });
        //给查询按钮设置点击事件
        searchBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

            }
        });
    }

    public JTable getjTable() {
        return jTable;
    }

    public DefaultTableModel getModel() {
        return model;
    }
}
package com.zbdx.dao;

import com.zbdx.util.DBUtils;

import javax.swing.table.DefaultTableModel;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

//持久层操作
public class EmpDao {
    //查询全部部门信息
    public static void getAllEmps(DefaultTableModel dtm) {
        try {
            //获取数据库连接对象
            Connection connection = DBUtils.getConnection();
            //编写sql语句
            String sql = "select * from emp";
            //获取sql语句的对象
            PreparedStatement pst = connection.prepareStatement(sql);
            //执行sql语句
            ResultSet resultSet = pst.executeQuery();//查询的结果集
            //从结果集中获取数据
            while (resultSet.next()) {
                Vector<String> vr = new Vector<>();
                vr.add(resultSet.getString("empno"));
                vr.add(resultSet.getString("ename"));
                vr.add(resultSet.getString("job"));
                vr.add(resultSet.getString("sal"));
                vr.add(resultSet.getString("deptno"));
                vr.add(resultSet.getString("deptno"));
                //将读取出来的数据显示到表格中
                dtm.addRow(vr);
            }
            //释放自愿
            DBUtils.close(connection, pst, resultSet);
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
}

  • 36
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值