package com.jnzyjsxy.test;
import java.awt.AWTError;
import java.awt.AWTEvent;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Panel;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.net.URL;
import java.net.URLClassLoader;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
/*
* 人事管理系统主界面
*/
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
import com.jnzyjsxy.node1.Node11Panel;
public class HrMain extends JFrame implements TreeSelectionListener{
private static final URLClassLoader URLClassLoader = null;
//框架大小
Dimension faceSize=new Dimension(650, 450);
//程序图标
Image icon;
//建立JTree目录树对象
JTree tree;
//书数据结构中的通用节点
//字面含义,默认可变的树节点类
DefaultMutableTreeNode root;//人事管理系统根节点
DefaultMutableTreeNode node1;//基本信息管理
DefaultMutableTreeNode node2;//人员管理节点
DefaultMutableTreeNode node3;//人员考核管理
DefaultMutableTreeNode node4;//劳资管理
DefaultMutableTreeNode node5;//
DefaultMutableTreeNode leafnode;//二级节点
TreePath treePath;//节点路径类
//主界面面板
//JSplitPane 用于分割两个(只能是两个)Component
//两个Component图形化分割
//并且这两个Component可以由用户交互式调整大小
//split--分裂,拆分
public static JSplitPane splitPane;
JPanel panel1;//在左侧放目录树
JPanel panel2;
JPanel panel3;//在右侧显示选择节点后的界面
//用于显示欢迎信息的标签
JLabel welcome=new JLabel();
//滚动面板对象
JScrollPane scrollPane;
/*
* 构造方法(non-Javadoc)
* @see java.awt.Window#pack()
*/public HrMain() {
// TODO Auto-generated constructor stub
//启动窗体事件隐藏 mask-面具,隐藏
//要是没有enableEvents(AWTEvent.WIDOW_EVENT_MASK);
//只要有addActionListener()方法,窗体也就拥有该方法
//本项目通过选择目录树触发活动事件
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
//添加框架的关闭时间处理
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//窗口自适应大小 使窗体能正好显示里面的所有控件
this.pack();
//设置框架的大小
this.setSize(faceSize);
//设置窗体的标题
this.setTitle("人事管理系统");
//调用自定义的方法GetImage() ,获取图标文件
//icon=getImage("common/icon.png");
//设置窗体图标
this.setIconImage(icon);
//设置不能调整窗体的大小
this.setResizable(false);
try {
Init();//调用初始化方法
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
/*
* 初始化方法 创建左侧菜单树
*/
private void Init() {
// TODO Auto-generated method stub
//初始化树形节点
root=new DefaultMutableTreeNode("人事管理系统");
node1=new DefaultMutableTreeNode("基本信息管理");
node2=new DefaultMutableTreeNode("人员调动管理");
node3=new DefaultMutableTreeNode("人员考核管理");
node4=new DefaultMutableTreeNode("劳资管理");
//添加基本信息管理节点到认识管里系统根节点
root.add(node1);
//添加耳机节点 并添加到基本信息管理一级节点上
leafnode=new DefaultMutableTreeNode("添加人员信息");
node1.add(leafnode);
leafnode=new DefaultMutableTreeNode("修改人员信息");
node1.add(leafnode);
leafnode=new DefaultMutableTreeNode("删除人员信息");
node1.add(leafnode);
leafnode=new DefaultMutableTreeNode("查询人员信息");
node1.add(leafnode);
leafnode=new DefaultMutableTreeNode("部门管理");
node1.add(leafnode);
//添加人员调动节点到根节点
root.add(node2);
leafnode=new DefaultMutableTreeNode("人员调动");
node2.add(leafnode);
leafnode=new DefaultMutableTreeNode("调动历史查询");
node2.add(leafnode);
root.add(node3);
leafnode=new DefaultMutableTreeNode("人员考核");
node3.add(leafnode);
leafnode=new DefaultMutableTreeNode("考核历史查询");
node3.add(leafnode);
root.add(node4);
leafnode=new DefaultMutableTreeNode("劳资分配管理");
node4.add(leafnode);
leafnode=new DefaultMutableTreeNode("劳资历史查询");
node4.add(leafnode);
//创建目录树管理 以root为跟节点
tree=new JTree(root);
//添加tree到滚动面板 即菜单树内容多时 出现滚动条
scrollPane=new JScrollPane(tree);
//设置滚动面板大小
scrollPane.setPreferredSize(new Dimension(150, 400));
//setselectionMode()-设置树的模型
//TreeSelectionModel.SINGLE_TREE_SELECTION,单选
//还可以是:CONTIGUOUD_TREE_SELECTION 连续多线
//或 DISCONTIGUONS_TREE_SELECTION 多选 可不连续
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
//初始化Panel面板
panel1=new JPanel();//左侧面板
panel2=new JPanel();//没用到该面板
panel3=new JPanel();//右侧面板
panel1.add(scrollPane);//显示目录树 ,目录树在滚动面板上
welcome.setText("欢迎使用人事管理系统");
welcome.setFont(new Font("Dialog", 0, 16));
panel3.add(welcome);//加到panel3面板上
//创建分割面板
splitPane=new JSplitPane();
//设置oneTouchExpandable属性的值 Expandable--展开式
//要使JsplitPane在分割条上提供一个小部件快速展开/折叠分割条 次属性必须为true
splitPane.setOneTouchExpandable(false);
//设置连续布局为true
//如果分割条改变位置是逐渐连续重绘
splitPane.setContinuousLayout(true);
//设置分割面板的大小
splitPane.setPreferredSize(new Dimension(150, 400));
//设置分割面板的方向--水平分割
splitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
//设置分割面板左侧组件-panel1 左侧组件-panel3
splitPane.setLeftComponent(panel1);
splitPane.setRightComponent(panel3);
//设置分割面板分割条大小
splitPane.setDividerSize(2);
//设置分割条的位置 divider--分割线
//可以将数值分别设定为150,161,171进行测试 查看效果
splitPane.setDividerLocation(161);
//生成主界面 等价this.add(spitpane)
this.setContentPane(splitPane);
this.setVisible(true);
//添加目录树选择事件监听
tree.addTreeSelectionListener(this);
//设置关闭操作监听代码
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
/*
* Jtree事件处理
* addTreeSelectionListener增加目录树监听 必须实现的方法
* (non-Javadoc)
* @see javax.swing.event.TreeSelectionListener#valueChanged(javax.swing.event.TreeSelectionEvent)
*/
@Override
public void valueChanged(TreeSelectionEvent tse) {
// TODO Auto-generated method stub
//定义默认书节点对象
//tse--在目录树中选择触发的时间
//tse.getPath.getLatPathComponent
//--返回在目录树的节点
DefaultMutableTreeNode dnode=(DefaultMutableTreeNode) tse.getPath().getLastPathComponent();
//在控制台输出选中的节点
System.out.println("dnode="+dnode);
//获取节点名称 转换成字符串
String node_str=dnode.toString();
//如果选择的节点为人事管理系统
if (node_str=="人事管理系统") {
//设置分割面板右侧组件为panel3
//显示欢迎使用认识管理系统
splitPane.setRightComponent(panel3);
}
else if (node_str=="基本信息管理") {
treePath = new TreePath(node1.getPath());
if (tree.isExpanded(treePath)) {
tree.collapsePath(treePath);
}
else {
tree.expandPath(treePath);
}
}
else if (node_str=="添加人员信息") {
Node11Panel node11Panel = new Node11Panel();
splitPane.setRightComponent(node11Panel);
}
}
/** * 通过给定的文件名获得图像 */
Image getImage(String filename){
URLClassLoader urlLoader=(URLClassLoader);
this.getClass().getClassLoader();
URL url=null;
Image image=null;
url=urlLoader.findResource(filename);
image=Toolkit.getDefaultToolkit().getImage(url);
MediaTracker mediaTracker=new MediaTracker(this);
try {
mediaTracker.addImage(image, 0);
mediaTracker.waitForID(0);
}catch (InterruptedException _ex){
image=null;
}
if (mediaTracker.isErrorID(0)) {
image=null;
}
return image;
}
}
java文件目录树形结构图 java的目录结构
转载文章标签 java文件目录树形结构图 java在main里面建立树 java 目录树 管理系统 文章分类 Java 后端开发
-
Linux目录结构
在Linux中一切皆文件,这些文件按照一定的规则存放在不同的目录当中。为了能够快速找到文件及以后的操作的规范性,我们必须记清楚Linux的目录结构。
目录 云计算 Linux centos 自动化运维 -
Linux系统文件目录结构图
Linux系统文件目录结构图
Linux 系统文件 结构图 -
java项目目录结构 java工程目录结构图
上次我们已经给大家介绍过java中maven的概念是什么,今天我们再来一起看一下,java中maven的项目结构和项目创建方法,并且通过详细的图片为大家解析。
java项目目录结构 java maven 项目结构 java 项目结构 项目创建