主界面代码:
1 package PersonSystem; 2 3 import java.awt.*; 4 import java.awt.event.*; 5 import javax.swing.*; 6 import javax.swing.event.*; 7 import javax.swing.tree.*; 8 import java.net.*; 9 /** 10 * 11 * 人事管理系统主界面 12 * 13 */ 14 public class HrMain extends JFrame implements ActionListener,TreeSelectionListener 15 { 16 Dimension faceSize = new Dimension(650,450); 17 Image icon; 18 //建立JTree菜单 19 JTree tree; 20 DefaultMutableTreeNode root;//人事管理系统 21 DefaultMutableTreeNode node1;//人员基本信息维护 22 DefaultMutableTreeNode node2;//部门信息管理 23 DefaultMutableTreeNode node3;//人员调动管理 24 DefaultMutableTreeNode node4;//人员考核管理 25 DefaultMutableTreeNode node5;//劳资管理 26 DefaultMutableTreeNode leafnode; 27 TreePath treePath; 28 29 //主界面面板 30 public static JSplitPane splitPane; 31 JPanel panel1; 32 JPanel panel2; 33 JPanel panel3; 34 JLabel welcome = new JLabel(); 35 JScrollPane scrollPane; 36 /** 37 * 程序初始化函数 38 */ 39 public HrMain() 40 { 41 enableEvents(AWTEvent.WINDOW_EVENT_MASK); 42 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 43 this.pack(); 44 this.setSize(faceSize); 45 this.setTitle("人事管理系统"); 46 icon = getImage("icon.png"); 47 this.setIconImage(icon);//设置程序图标 48 this.setResizable(false); 49 try{ 50 Init(); 51 } 52 catch(Exception e){ 53 e.printStackTrace(); 54 } 55 } 56 /** 57 * 程序初始化函数 58 */ 59 private void Init() throws Exception 60 { 61 //添加JTree菜单 62 root = new DefaultMutableTreeNode("人事管理系统"); 63 node1 = new DefaultMutableTreeNode("基本信息管理"); 64 node2 = new DefaultMutableTreeNode("人员调动管理"); 65 node3 = new DefaultMutableTreeNode("人员考核管理"); 66 node4 = new DefaultMutableTreeNode("劳资管理"); 67 //人员基本信息 68 root.add(node1); 69 leafnode = new DefaultMutableTreeNode("添加人员信息"); 70 node1.add(leafnode); 71 leafnode = new DefaultMutableTreeNode("修改人员信息"); 72 node1.add(leafnode); 73 leafnode = new DefaultMutableTreeNode("删除人员信息"); 74 node1.add(leafnode); 75 leafnode = new DefaultMutableTreeNode("查询人员信息"); 76 node1.add(leafnode); 77 leafnode = new DefaultMutableTreeNode("部门管理"); 78 node1.add(leafnode); 79 //人员调动 80 root.add(node2); 81 leafnode = new DefaultMutableTreeNode("人员调动"); 82 node2.add(leafnode); 83 leafnode = new DefaultMutableTreeNode("调动历史查询"); 84 node2.add(leafnode); 85 //人员考核管理 86 root.add(node3); 87 leafnode = new DefaultMutableTreeNode("人员考核"); 88 node3.add(leafnode); 89 leafnode = new DefaultMutableTreeNode("考核历史查询"); 90 node3.add(leafnode); 91 //劳资管理 92 root.add(node4); 93 leafnode = new DefaultMutableTreeNode("劳资分配管理"); 94 node4.add(leafnode); 95 leafnode = new DefaultMutableTreeNode("劳资历史查询"); 96 node4.add(leafnode); 97 //生成左侧的JTree 98 tree = new JTree(root); 99 scrollPane = new JScrollPane(tree);100 scrollPane.setPreferredSize(new Dimension(150,400));101 tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);102 //生成JPanel103 panel1 = new JPanel();104 panel2 = new JPanel();105 panel3 = new JPanel();106 panel1.add(scrollPane);107 welcome.setText("欢迎使用人事管理系统");108 welcome.setFont(new Font("Dialog",0,16));109 panel3.add(welcome);110 //生成JSplitPane并设置参数111 splitPane = new JSplitPane();112 splitPane.setOneTouchExpandable(false);113 splitPane.setContinuousLayout(true);114 splitPane.setPreferredSize(new Dimension(150,400));115 splitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);116 splitPane.setLeftComponent(panel1);117 splitPane.setRightComponent(panel3);118 splitPane.setDividerSize(2);119 splitPane.setDividerLocation(161);120 //生成主界面121 this.setContentPane(splitPane);122 this.setVisible(true);123 //添加事件侦听124 tree.addTreeSelectionListener(this);125 //关闭程序时的操作126 this.addWindowListener(127 new WindowAdapter(){128 public void windowClosing(WindowEvent e){129 System.exit(0);130 }131 }132 );133 }134 /**135 * 事件处理136 */137 public void actionPerformed(ActionEvent e){138 139 }140 /**141 * JTree事件处理142 */143 public void valueChanged(TreeSelectionEvent tse)144 {145 DefaultMutableTreeNode dnode = (DefaultMutableTreeNode)tse.getPath().getLastPathComponent();146 System.out.println("dnode="+dnode);147 String node_str = dnode.toString();148 if(node_str == "人事管理系统"){149 splitPane.setRightComponent(panel3);150 }151 //人员基本信息树152 else if(node_str == "基本信息管理"){153 //当选中后展开或关闭叶子节点154 treePath = new TreePath(node1.getPath());155 if(tree.isExpanded(treePath))156 tree.collapsePath(treePath);157 else158 tree.expandPath(treePath);159 }160 else if(node_str == "添加人员信息"){161 Node11Panel node11Panel = new Node11Panel();162 splitPane.setRightComponent(node11Panel);163 }164 else if(node_str == "修改人员信息"){165 Node12Panel node12Panel = new Node12Panel();166 splitPane.setRightComponent(node12Panel);167 }168 else if(node_str == "删除人员信息"){169 Node13Panel node13Panel = new Node13Panel();170 splitPane.setRightComponent(node13Panel);171 }172 else if(node_str == "查询人员信息"){173 Node14Panel node14Panel = new Node14Panel();174 splitPane.setRightComponent(node14Panel);175 }176 else if(node_str == "部门管理"){177 Node15Panel node15Panel = new Node15Panel();178 splitPane.setRightComponent(node15Panel);179 }180 //人员调动管理树181 else if(node_str == "人员调动管理"){182 //当选中后展开或关闭叶子节点183 treePath = new TreePath(node2.getPath());184 if(tree.isExpanded(treePath))185 tree.collapsePath(treePath);186 else187 tree.expandPath(treePath);188 }189 else if(node_str == "人员调动"){190 Node21Panel node21Panel = new Node21Panel();191 splitPane.setRightComponent(node21Panel);192 }193 else if(node_str == "调动历史查询"){194 Node22Panel node22Panel = new Node22Panel();195 splitPane.setRightComponent(node22Panel);196 }197 //人员考核管理树198 else if(node_str == "人员考核管理"){199 //当选中后展开或关闭叶子节点200 treePath = new TreePath(node3.getPath());201 if(tree.isExpanded(treePath))202 tree.collapsePath(treePath);203 else204 tree.expandPath(treePath);205 }206 else if(node_str == "人员考核"){207 Node31Panel node31Panel = new Node31Panel();208 splitPane.setRightComponent(node31Panel);209 }210 else if(node_str == "考核历史查询"){211 Node32Panel node32Panel = new Node32Panel();212 splitPane.setRightComponent(node32Panel);213 }214 //劳资管理树215 else if(node_str == "劳资管理"){216 //当选中后展开或关闭叶子节点217 treePath = new TreePath(node4.getPath());218 if(tree.isExpanded(treePath))219 tree.collapsePath(treePath);220 else221 tree.expandPath(treePath);222 }223 else if(node_str == "劳资分配管理"){224 Node41Panel node41Panel = new Node41Panel();225 splitPane.setRightComponent(node41Panel);226 }227 else if(node_str == "劳资历史查询"){228 Node42Panel node42Panel = new Node42Panel();229 splitPane.setRightComponent(node42Panel);230 }231 }232 /**233 * 通过给定的文件名获得图像234 */235 Image getImage(String filename)236 {237 URLClassLoader urlLoader = (URLClassLoader)this.getClass().getClassLoader();238 URL url = null;239 Image image = null;240 url = urlLoader.findResource(filename);241 image = Toolkit.getDefaultToolkit().getImage(url);242 MediaTracker mediatracker = new MediaTracker(this);243 try{244 mediatracker.addImage(image, 0);245 mediatracker.waitForID(0);246 }247 catch(InterruptedException _ex){248 image = null;249 }250 if(mediatracker.isErrorID(0)){251 image = null;252 }253 return image;254 }255 }
主类代码:
1 package PersonSystem; 2 3 import javax.swing.UIManager; 4 import java.awt.*; 5 6 /** 7 * 人事管理系统运行主类 8 */ 9 10 public class HrMS 11 {12 boolean packFrame = false;13 public HrMS()14 {15 HrMain frame = new HrMain();16 if(packFrame){17 frame.pack();18 }19 else{20 frame.validate();21 }22 //设置运行时窗口的位置23 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();24 Dimension frameSize = frame.getSize();25 if(frameSize.height > screenSize.height){26 frameSize.height = screenSize.height;27 }28 if(frameSize.width > screenSize.width){29 frameSize.width = screenSize.width;30 }31 frame.setLocation((screenSize.width - frameSize.width)/2,(screenSize.height - frameSize.height)/2);32 frame.setVisible(true);33 }34 public static void main(String[] args)35 {36 try{37 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());38 }39 catch(Exception e){40 e.printStackTrace();41 }42 new HrMS();43 }44 }