package com.mwq.frame;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Desktop;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.border.TitledBorder;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
import com.mwq.PersonnelManage;
import com.mwq.frame.personnel.BringUpSelectedPanel;
import com.mwq.frame.personnel.RecordSelectedPanel;
import com.mwq.frame.personnel.RewardsAndPunishmentPanel;
import com.mwq.frame.personnel.TimecardPanel;
import com.mwq.frame.system.DataPanel;
import com.mwq.frame.system.FrameworkPanel;
import com.mwq.frame.treatement.CriterionSetPanel;
import com.mwq.frame.treatement.PersonnelSetPanel;
import com.mwq.frame.treatement.ReportFormsPanel;
import com.mwq.frame.user.AddUserPanel;
import com.mwq.frame.user.UpdatePasswordDialog;
import com.mwq.hibernate.Dao;
import com.mwq.hibernate.mapping.TbRecord;
public class IndexFrame extends JFrame {
private JTree tree;
final JPanel rightPanel = new JPanel();
private TbRecord record;
private final Dao dao = Dao.getInstance();
/**
* Launch the application
*
* @param args
*/
public static void main(String args[]) {
try {
IndexFrame frame = new IndexFrame(null);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the frame
*/
public IndexFrame(TbRecord tbRecord) {
super();
this.record = tbRecord;
setResizable(false);
setExtendedState(IndexFrame.MAXIMIZED_BOTH);// 设置窗口以最大化打开
setTitle(" T 科技");
setBounds(0, 0, 950, 700);
setBounds(0, 0, 1024, 768);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JPanel topPanel = new JPanel();
topPanel.setLayout(new BorderLayout());
topPanel.setPreferredSize(new Dimension(0, 100));
getContentPane().add(topPanel, BorderLayout.NORTH);
final JLabel label = new JLabel();
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setHorizontalTextPosition(SwingConstants.CENTER);
URL resource = IndexFrame.this.getClass().getResource("/img/logo.JPG");
ImageIcon icon = new ImageIcon(resource);
label.setIcon(icon);
label.setBorder(new TitledBorder(null, "",
TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.DEFAULT_POSITION, null, null));
label.setPreferredSize(new Dimension(160, 0));
topPanel.add(label, BorderLayout.WEST);
final JPanel buttonPanel = new JPanel();// 创建工具栏面板
final GridLayout gridLayout = new GridLayout(1, 0);// 创建一个水平箱式布局管理器对象
gridLayout.setVgap(6);// 箱的垂直间隔为6像素
gridLayout.setHgap(6);// 箱的水平间隔为6像素
buttonPanel.setLayout(gridLayout);// 设置工具栏面板采用的布局管理器为箱式布局
buttonPanel.setBackground(new Color(90, 130, 189));// 设置工具栏面板的背景色
buttonPanel.setBorder(new TitledBorder(null, "",
TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.DEFAULT_POSITION, null, null));// 设置工具栏面板采用的边框样式
topPanel.add(buttonPanel, BorderLayout.CENTER);// 将工具栏面板添加到上级面板中
final JButton recordShortcutKeyButton = new JButton();// 创建进入“档案管理”的快捷按钮
resource = this.getClass().getResource("/img/record.JPG");
icon = new ImageIcon(resource);
recordShortcutKeyButton.setIcon(icon);
// 为按钮添加事件监听器,用来捕获按钮被点击的事件
recordShortcutKeyButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
rightPanel.removeAll();// 移除内容面板中的所有内容
rightPanel.add(new RecordSelectedPanel(rightPanel),
BorderLayout.CENTER);// 将档案管理面版添加到内容面板中
SwingUtilities.updateComponentTreeUI(rightPanel);// 刷新内容面板中的内容
}
});
buttonPanel.add(recordShortcutKeyButton);
final JButton timecardShortcutKeyButton = new JButton();
resource = this.getClass().getResource("/img/timecard.JPG");
icon = new ImageIcon(resource);
timecardShortcutKeyButton.setIcon(icon);
timecardShortcutKeyButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
rightPanel.removeAll();
rightPanel.add(new TimecardPanel(), BorderLayout.CENTER);
SwingUtilities.updateComponentTreeUI(rightPanel);
}
});
buttonPanel.add(timecardShortcutKeyButton);
final JButton rewardsAndPunishmentShortcutKeyButton = new JButton();
resource = this.getClass().getResource("/img/rewAndPun.JPG");
icon = new ImageIcon(resource);
rewardsAndPunishmentShortcutKeyButton.setIcon(icon);
rewardsAndPunishmentShortcutKeyButton
.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
rightPanel.removeAll();
rightPanel.add(new RewardsAndPunishmentPanel(),
BorderLayout.CENTER);
SwingUtilities.updateComponentTreeUI(rightPanel);
}
});
buttonPanel.add(rewardsAndPunishmentShortcutKeyButton);
final JButton reportFormsShortcutKeyButton = new JButton();
resource = this.getClass().getResource("/img/stat.JPG");
icon = new ImageIcon(resource);
reportFormsShortcutKeyButton.setIcon(icon);
reportFormsShortcutKeyButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
rightPanel.removeAll();
rightPanel.add(new ReportFormsPanel(), BorderLayout.CENTER);
SwingUtilities.updateComponentTreeUI(rightPanel);
}
});
buttonPanel.add(reportFormsShortcutKeyButton);
final JButton basicDataShortcutKeyButton = new JButton();
resource = this.getClass().getResource("/img/data.JPG");
icon = new ImageIcon(resource);
basicDataShortcutKeyButton.setIcon(icon);
basicDataShortcutKeyButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
rightPanel.removeAll();
rightPanel.add(new DataPanel(), BorderLayout.CENTER);
SwingUtilities.updateComponentTreeUI(rightPanel);
}
});
buttonPanel.add(basicDataShortcutKeyButton);
final JButton updatePasswordShortcutKeyButton = new JButton();
resource = this.getClass().getResource("/img/password.JPG");
icon = new ImageIcon(resource);
updatePasswordShortcutKeyButton.setIcon(icon);
if (record == null)// 当record为null时,说明是通过默认用户登录的,此时不能修改密码
updatePasswordShortcutKeyButton.setEnabled(false);// 在这种情况下设置按钮不可用
updatePasswordShortcutKeyButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
rightPanel.removeAll();
SwingUtilities.updateComponentTreeUI(rightPanel);
UpdatePasswordDialog dialog = new UpdatePasswordDialog();// 创建用来修改密码的对话框
dialog.setRecord(record);// 将当前登录管理员的档案对象传入对话框
dialog.setVisible(true);// 设置对话框为可见的,即显示对话框
}
});
buttonPanel.add(updatePasswordShortcutKeyButton);
final JButton counterShortcutKeyButton = new JButton();
resource = this.getClass().getResource("/img/calculator.JPG");
icon = new ImageIcon(resource);
counterShortcutKeyButton.setIcon(icon);
counterShortcutKeyButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Desktop desktop = Desktop.getDesktop();// 获得当前系统对象
File file = new File("C:/WINDOWS/system32/calc.exe");// 创建一个系统计算器对象
try {
desktop.open(file);// 打开系统计算器
} catch (Exception e1) {// 当打开失败时,弹出提示信息
JOptionPane.showMessageDialog(null, "很抱歉,未能打开系统自带的计算器!",
"友情提示", JOptionPane.INFORMATION_MESSAGE);
return;
}
}
});
buttonPanel.add(counterShortcutKeyButton);
final JButton excelShortcutKeyButton = new JButton();
resource = this.getClass().getResource("/img/excel.JPG");
icon = new ImageIcon(resource);
excelShortcutKeyButton.setIcon(icon);
excelShortcutKeyButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Desktop desktop = Desktop.getDesktop();
File file = new File("src/office/new.xls");
try {
desktop.open(file);
} catch (Exception e1) {
JOptionPane.showMessageDialog(null, "很抱歉,您的机器还没有安装Office!",
"友情提示", JOptionPane.INFORMATION_MESSAGE);
return;
}
}
});
buttonPanel.add(excelShortcutKeyButton);
final JButton exitShortcutKeyButton = new JButton();
resource = this.getClass().getResource("/img/exit.JPG");
icon = new ImageIcon(resource);
exitShortcutKeyButton.setIcon(icon);
exitShortcutKeyButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
buttonPanel.add(exitShortcutKeyButton);
final JPanel leftPanel = new JPanel();
leftPanel.setBackground(new Color(90, 130, 189));
leftPanel.setLayout(new BorderLayout());
leftPanel.setBorder(new TitledBorder(null, "",
TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.DEFAULT_POSITION, null, null));
leftPanel.setPreferredSize(new Dimension(160, 0));
getContentPane().add(leftPanel, BorderLayout.WEST);
DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");// 创建树的根结点
DefaultMutableTreeNode personnelNode = new DefaultMutableTreeNode(
"人事管理");// 创建树的一级子结点
personnelNode.add(new DefaultMutableTreeNode("档案管理"));// 创建树的叶子结点并添加到一级子结点
personnelNode.add(new DefaultMutableTreeNode("考勤管理"));
personnelNode.add(new DefaultMutableTreeNode("奖惩管理"));
personnelNode.add(new DefaultMutableTreeNode("培训管理"));
root.add(personnelNode);// 向根结点添加一级子结点
DefaultMutableTreeNode treatmentNode = new DefaultMutableTreeNode(
"待遇管理");
treatmentNode.add(new DefaultMutableTreeNode("账套管理"));
treatmentNode.add(new DefaultMutableTreeNode("人员设置"));
treatmentNode.add(new DefaultMutableTreeNode("统计报表"));
root.add(treatmentNode);
DefaultMutableTreeNode systemNode = new DefaultMutableTreeNode("系统维护");
systemNode.add(new DefaultMutableTreeNode("企业架构"));
systemNode.add(new DefaultMutableTreeNode("基本资料"));
systemNode.add(new DefaultMutableTreeNode("初始化系统"));
root.add(systemNode);
DefaultMutableTreeNode userNode = new DefaultMutableTreeNode("用户管理");
if (record == null) {// 当record为null时,说明是通过默认用户登录的,此时只能新增用户,不能修改密码
userNode.add(new DefaultMutableTreeNode("新增用户"));
} else {// 否则为通过管理员登录
String purview = record.getTbManager().getPurview();
if (purview.equals("超级管理员")) {// 只有当管理员的权限为“超级管理员”时,才有权新增用户
userNode.add(new DefaultMutableTreeNode("新增用户"));
}
userNode.add(new DefaultMutableTreeNode("修改密码"));// 只有通过管理员登录时才有权修改密码
}
root.add(userNode);
DefaultMutableTreeNode toolNode = new DefaultMutableTreeNode("系统工具");
toolNode.add(new DefaultMutableTreeNode("打开计算器"));
toolNode.add(new DefaultMutableTreeNode("打开WORD"));
toolNode.add(new DefaultMutableTreeNode("打开EXCEL"));
root.add(toolNode);
DefaultTreeModel treeModel = new DefaultTreeModel(root);// 通过树结点对象创建树模型对象
tree = new JTree(treeModel);// 通过树模型对象创建树对象
tree.setBackground(Color.WHITE);// 设置树的背景色
tree.setRootVisible(false);// 设置不显示树的根结点,默认为显示,即true
tree.setRowHeight(24);// 设置各结点的高度为27像素
tree.setFont(new Font("宋体", Font.BOLD, 14));// 设置结点的字体样式
DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();// 创建一个树的绘制对象
// renderer.setLeafIcon(null);// 设置叶子结点不采用图标
renderer.setClosedIcon(null);// 设置结点折叠时不采用图标
renderer.setOpenIcon(null);// 设置结点展开时不采用图标
tree.setCellRenderer(renderer);// 将树的绘制对象设置到树中
int count = root.getChildCount();// 获得一级结点的数量
for (int i = 0; i < count; i++) {// 遍历树的一级结点
DefaultMutableTreeNode node = (DefaultMutableTreeNode) root
.getChildAt(i);// 获得指定索引位置的一级结点对象
TreePath path = new TreePath(node.getPath());// 获得结点对象的路径
tree.expandPath(path);// 展开该结点
}
tree.addTreeSelectionListener(new TreeSelectionListener() {// 捕获树的选取事件
public void valueChanged(TreeSelectionEvent e) {
rightPanel.removeAll();
TreePath treePath = e.getPath();
if (treePath.getPathCount() == 2) {
rightPanel
.add(backgroundLabel, BorderLayout.CENTER);
} else {
String selectedNode = treePath
.getLastPathComponent().toString();
String parentNode = treePath.getParentPath()
.getLastPathComponent().toString();
if (parentNode.equals("人事管理")) {
System.out.println("人事管理");
if (selectedNode.equals("档案管理")) {
rightPanel.add(new RecordSelectedPanel(
rightPanel), BorderLayout.CENTER);
} else if (selectedNode.equals("考勤管理")) {
rightPanel.add(new TimecardPanel(),
BorderLayout.CENTER);
} else if (selectedNode.equals("奖惩管理")) {
rightPanel.add(
new RewardsAndPunishmentPanel(),
BorderLayout.CENTER);
} else {// 人事培训管理
rightPanel.add(new BringUpSelectedPanel(
rightPanel), BorderLayout.CENTER);
}
} else if (parentNode.equals("待遇管理")) {
System.out.println("待遇管理");
if (selectedNode.equals("账套管理")) {
rightPanel.add(new CriterionSetPanel(),
BorderLayout.CENTER);
} else if (selectedNode.equals("人员设置")) {
rightPanel.add(new PersonnelSetPanel(),
BorderLayout.CENTER);
} else {// 统计报表
rightPanel.add(new ReportFormsPanel(),
BorderLayout.CENTER);
}
} else if (parentNode.equals("系统维护")) {
System.out.println("系统维护");
if (selectedNode.equals("企业架构")) {
rightPanel.add(new FrameworkPanel(),
BorderLayout.CENTER);
} else if (selectedNode.equals("基本资料")) {
rightPanel.add(new DataPanel(),
BorderLayout.CENTER);
} else {// 系统初始化
int i = JOptionPane.showConfirmDialog(null,
"确定要初始化系统?", "友情提示",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (i == 0) {
dao.initTimecard();
dao.initBringUpOntent();
dao.initBringUpContent();
dao.initRewardsAndPunishment();
dao.initReckoningInfo();
dao.initReckoningList();
dao.initReckoning();
dao.initDutyInfo();
dao.initPersonalInfo();
dao.initManager();
dao.initRecord();
dao.initDept();
dao.initDuty();
dao.initNation();
dao.initNativePlace();
dao.initAccessionForm();
dao.initAccountItem();
String clueOn[] = new String[] {
" 系统初始化完成!",
" 系统将重新启动,您首先需要通过默认用户登录,",
"然后通过“人事管理”->“档案管理”添加人事档案,",
"其次通过“用户管理”->“新增用户”添加系统管理",
"员,最后通过新添加的管理员登录!",
" 需要注意的是,只有第一个被添加的管理员为",
"超级管理员,具有“新增用户”的权限!" };
JOptionPane
.showMessageDialog(
null,
clueOn,
"友情提示",
JOptionPane.INFORMATION_MESSAGE);
dispose();
new PersonnelManage();
}
}
} else if (parentNode.equals("用户管理")) {
System.out.println("用户管理");
if (selectedNode.equals("新增用户")) {
AddUserPanel addUserPanel = new AddUserPanel();
addUserPanel.setRecord(record);
rightPanel.add(addUserPanel,
BorderLayout.CENTER);
} else {// 修改密码
rightPanel.removeAll();
SwingUtilities
.updateComponentTreeUI(rightPanel);
UpdatePasswordDialog updatePasswordDialog = new UpdatePasswordDialog();
updatePasswordDialog.setRecord(record);
updatePasswordDialog.setVisible(true);
}
} else {
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
File file = null;
try {
if (selectedNode.equals("打开计算器")) {
Runtime runtime = Runtime
.getRuntime();
runtime.exec("calc.exe");
} else if (selectedNode
.equals("打开WORD")) {
file = new File("src/office/new.doc");
desktop.open(file);
} else {// 打开EXCEL
file = new File("src/office/new.xls");
desktop.open(file);
}
} catch (Exception e1) {
JOptionPane
.showMessageDialog(
null,
"很抱歉,未能打开您请求的系统工具!",
"友情提示",
JOptionPane.INFORMATION_MESSAGE);
return;
}
}
}
}
SwingUtilities.updateComponentTreeUI(rightPanel);
}
});
leftPanel.add(tree);
rightPanel.setLayout(new BorderLayout());
rightPanel.setPreferredSize(new Dimension(0, 0));
rightPanel.setBackground(new Color(255, 255, 247));
rightPanel.setBorder(new TitledBorder(null, "",
TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.DEFAULT_POSITION, null, null));
getContentPane().add(rightPanel, BorderLayout.CENTER);
resource = this.getClass().getResource("/img/back.JPG");
icon = new ImageIcon(resource);
backgroundLabel.setIcon(icon);
backgroundLabel.setHorizontalTextPosition(SwingConstants.CENTER);
backgroundLabel.setHorizontalAlignment(SwingConstants.CENTER);
rightPanel.add(backgroundLabel, BorderLayout.CENTER);
//
}
final JLabel backgroundLabel = new JLabel();
}
最近下载更多
caomin LV4
2023年5月19日
poipoiiop LV8
2023年1月8日
赵佳倩 LV1
2022年10月19日
qinshizun LV1
2022年8月22日
微信网友_6084258495877120 LV1
2022年8月11日
baoligeer LV5
2022年6月2日
姜广坤 LV14
2022年5月20日
12koko LV3
2022年4月19日
wanglinddad LV55
2022年4月14日
刘先生-OL LV13
2022年3月23日
最近浏览更多
微信网友_7556429449121792
6月16日
暂无贡献等级
xdd123456
2024年12月26日
暂无贡献等级
zhao鑫
2024年12月19日
暂无贡献等级
KKKing0908
2024年10月7日
暂无贡献等级
微信网友_7180079327236096
2024年9月23日
暂无贡献等级
ljiahao2024
2024年9月5日
暂无贡献等级
255921158 LV5
2024年7月17日
wangming32 LV1
2024年7月15日
ZALZXB20030525
2024年7月1日
暂无贡献等级
微信网友_5986558820093952 LV4
2024年6月29日

