欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JFrame实现员工管理系统

程序员文章站 2022-04-10 23:37:34
...

    之前一直没有接触过JFrame,这次因为项目要求,自学了一个星期的JFrame做出来的东西,功能还不太完善,各位大神随便看看就好。废话不多说,先上一波图:

   JFrame实现员工管理系统

  登录中,这里用了一个进度条组件,用线程控制的进度快慢,用来体现一下‘登录’的过程

JFrame实现员工管理系统


这个就是登录以后的主界面,左侧是菜单选项栏,每一个菜单栏都对应一个大的Jpanel容器,就是显示当前位置这个Jpanel和内容这个Jpanel,它们都是被我放在一个大的JPanel中,然后存到List集合中,在主界面通过按钮监听事件选择显示对应的JPanel,其他deJpanel隐藏。

JFrame实现员工管理系统

签到功能:

JFrame实现员工管理系统

这个页面做了两个查看,顶部查看信息用了JLabel监听事件,包括鼠标的获取、释放、点击效果,点击后又跳转到对应的页面。查看人员处做了一个分页查询,管理员登陆能进行相应的增删查改功能,普通员工不能操作。

JFrame实现员工管理系统


                                                                                                                                           

JFrame实现员工管理系统JFrame实现员工管理系统JFrame实现员工管理系统

这里做了一个发布公告的页面,管理员在这里发布公告,其他用户端登陆后能查看,但是不能发布。JFrame实现员工管理系统

发布采购申请:JFrame实现员工管理系统


最后附上登录页面的代码:

package com.oracleoaec.view;

import java.awt.Button;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JProgressBar;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import com.oracleoaec.entity.User;
import com.oracleoaec.util.DBBean;

public class Login extends JFrame implements ActionListener {
    JPanel panel;
    JPanel panel1;
    JPanel panel2;
    JFrame frame;
    JTextField area;
    JPasswordField area2;
    JProgressBar pro;

    public Login(String title) {
	super(title);
    }

    public void init() {
	frame = new JFrame("用户登录");
	// 设置*容器的坐标和宽高
	frame.setBounds(0, 0, 800, 600);
	frame.setLocationRelativeTo(panel);
	// *容器的布局设置为没有布局
	frame.setLayout(null);
	// 设置*容器的背景颜色
	frame.getContentPane().setBackground(new Color(10, 170, 229));

	// 定义一个JPanel容器用于添加组件(登录主界面)
	panel = new JPanel();
	panel.setLayout(null);
	panel.setBackground(new Color(10, 170, 229));
	panel.setBounds(80, 80, 599, 331);
	JLabel jLabel = new JLabel();
	jLabel.setBounds(80, 80, 599, 331);
	frame.add(jLabel);
	jLabel.setIcon(new ImageIcon("img/DLBJ2.png"));

	// 设置登录框背景1
	panel1 = new JPanel();
	panel1.setLayout(null);
	panel1.setBackground(new Color(100, 100, 229));
	panel1.setBounds(98, 78, 354, 264);

	// 设置登录框背景2

	panel2 = new JPanel();
	panel2.setLayout(null);
	panel2.setBackground(new Color(100, 170, 229));
	panel2.setBounds(0, 0, 800, 600);

	// 创建标签
	// 创建标签,添加背景图片
	JLabel label = new JLabel("用户名:");
	JLabel label2 = new JLabel("密  码:");
	JLabel panel_bg = new JLabel();
	ImageIcon icon = new ImageIcon("img/BJ.jpg");
	panel_bg.setIcon(icon);
	panel_bg.setBounds(0, 0, 800, 600);// 背景图片
	panel2.add(panel_bg);

	// 创建输入框
	area = new JTextField();
	area.setForeground(new Color(255, 255, 255));
	area.setFont(new Font(null, Font.PLAIN, 14));
	// 创建密码输入框
	area2 = new JPasswordField();
	area2.setForeground(new Color(255, 255, 255));
	area2.setFont(new Font(null, Font.BOLD, 14));
	// 创建按钮
	JButton button = new JButton();
	button.setActionCommand("登录");
	button.addActionListener(this);

	// 设置输入框和标签、按钮的位置和大小
	area.setBounds(193, 187, 180, 22);
	area2.setBounds(193, 232, 180, 22);
	button.setBounds(407, 182, 62, 76);
	button.setIcon(new ImageIcon("img/DLBT.png"));
	button.setOpaque(false);
	area.setOpaque(false);
	area2.setOpaque(false);
	// 设置密码输入框隐藏字符样式

	area2.setEchoChar('*');

	// 往*容器中放容器panel
	frame.getLayeredPane().add(panel2, new Integer(Integer.MIN_VALUE));
	frame.add(panel);
	// frame.add(panel1);
	// 设置窗口的关闭方式
	frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
	panel.setOpaque(false);
	// 去掉单选框的内边框
	button.setVisible(true);
	// 添加标签和输入框
	jLabel.add(area);
	jLabel.add(area2);
	jLabel.add(button);
	// 将*容器/窗口 设为可视
	frame.setVisible(true);
	// 将窗口大小固定,不可缩放
	frame.setResizable(false);
	// 将panel/2容器设为可见
	panel.setVisible(true);
	panel1.setVisible(true);
	panel2.setVisible(true);
    }

    public static void main(String[] args) {
	try {
	    org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
	} catch (Exception e) {
	    e.printStackTrace();
	}
	Login main = new Login("企业管理系统");
	main.init();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
	if (e.getActionCommand().equals("登录")) {

	    String user = area.getText();
	    String pwd = area2.getText();
	    DBBean bean = new DBBean();

	    ArrayList list = bean.executeQuery();
	    boolean b = true;
	    for (User user2 : list) {
		if (user2.getName().equals(user)) {
		    if (user2.getPwd().equals(pwd)) {
			Jdt j = new Jdt();
			j.start();
			Timer t = new Timer();
			t.schedule(new TimerTask() {
			    @Override
			    public void run() {
				try {
				    frame.dispose();
				    new MainView(user2.getName());
				} catch (InterruptedException e) {
				    e.printStackTrace();
				}
			    }
			}, 2000);
			b = false;
		    } else {
			JOptionPane.showMessageDialog(null, "密码错误", "错误提示", JOptionPane.ERROR_MESSAGE);
			area2.setText(null);
			b = false;
		    }
		}
	    }
	    if (b) {
		JOptionPane.showMessageDialog(null, "用户名不存在", "错误提示", JOptionPane.ERROR_MESSAGE);
		area.setText(null);
	    }
	}
	if (e.getActionCommand().equals("退出")) {
	    System.exit(0);
	}
    }

    public class Jdt extends Thread {
	public void run() {
	    // 设置进度条
	    pro = new JProgressBar();
	    pro.setIndeterminate(false);
	    pro.setStringPainted(true);// 设置提示信息
	    pro.setString("登录中。。。");

	    pro.setFont(new Font("宋体", Font.PLAIN, 14));
	    pro.setBounds(23, 272, 550, 20);
	    panel.add(pro);
	    Jdtt jd = new Jdtt();
	    jd.start();

	}
    }

    class Jdtt extends Thread {
	public void run() {
	    for (int i = 0; i <= 100; i++) {
		pro.setValue(i);
		try {
		    Thread.sleep(18);
		} catch (InterruptedException e) {
		    // TODO 自动生成的 catch 块
		    e.printStackTrace();
		}
	    }
	}
    }
}
empty