JFrame实现员工管理系统
程序员文章站
2022-04-10 23:37:34
...
之前一直没有接触过JFrame,这次因为项目要求,自学了一个星期的JFrame做出来的东西,功能还不太完善,各位大神随便看看就好。废话不多说,先上一波图:
登录中,这里用了一个进度条组件,用线程控制的进度快慢,用来体现一下‘登录’的过程
这个就是登录以后的主界面,左侧是菜单选项栏,每一个菜单栏都对应一个大的Jpanel容器,就是显示当前位置这个Jpanel和内容这个Jpanel,它们都是被我放在一个大的JPanel中,然后存到List集合中,在主界面通过按钮监听事件选择显示对应的JPanel,其他deJpanel隐藏。
签到功能:
这个页面做了两个查看,顶部查看信息用了JLabel监听事件,包括鼠标的获取、释放、点击效果,点击后又跳转到对应的页面。查看人员处做了一个分页查询,管理员登陆能进行相应的增删查改功能,普通员工不能操作。
这里做了一个发布公告的页面,管理员在这里发布公告,其他用户端登陆后能查看,但是不能发布。
发布采购申请:
最后附上登录页面的代码:
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
推荐阅读
-
abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十二)
-
abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之五(三十一)
-
abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之八(三十四)
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理五 (二十三)
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理八(二十六)
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理六(二十四)
-
C#实现图书管理系统
-
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七)
-
python实现名片管理系统
-
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之增删改视图(八)