姓名:张胜龙
班级:计科20-3
学号:202003010085
jar包
右键菜单选项(可进行删除、重命名、复制、粘贴、查看属性、统计文件操作)
实现文本类文件的预览功能
实现查看文件的属性
实现文件的重命名
统计文件数目方法
//统计文件夹的数目
public static int countFileNumber(File directory) {
int num = 0;
//若统计文件数目则 .isFile()
if (!directory.isDirectory()) {
return 1;
}
File[] files = directory.listFiles();
for (File direc : files) {
num += countFileNumber(direc);
}
return num;
}
右键弹出菜单
//右键弹出菜单,显示位置不固定的弹窗
PopupMenu pop = new PopupMenu();
MenuItem deleteItem = new MenuItem("Delete");
MenuItem renameItem = new MenuItem("Rename");
MenuItem natrueItem = new MenuItem("Attributes");
MenuItem copyItem=new MenuItem("Copy");
MenuItem pasteItem=new MenuItem("Paste");
MenuItem otherItem=new MenuItem("All Have");
//自定义一个名为root的节点,后面作为根节点创建一棵树 NodeData是自定义节点类。
DefaultMutableTreeNode root = new DefaultMutableTreeNode(new NodeData(null,"我的电脑"));
设置 Jtree 的样式 , 渲染Component组件的样式
//重写父类方法
//getTreeCellRendererComponent方法存在于DefaultTreeCellRenderer类。这个类实际上是实现的接口TreeCellRenderer
//将当前树单元格的值设置为 value。如果 sel 为 true,则将单元格作为已选择的单元格进行绘制。如果 expanded 为 true,则当前扩展该节点,如果 leaf 为 true,则该节点表示叶节点,如果 hasFocus 为 true,则该节点当前拥有焦点。
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel, boolean expanded, boolean leaf, int row,
boolean hasFocus) {
fsView = FileSystemView.getFileSystemView();//获取FileSystemView的实例
DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) value;//获取当前节点
NodeData data = (NodeData) selectedNode.getUserObject();//取得节点的用户对象
Icon icon = fsView.getSystemIcon(data.f);//Icon为图片
setLeafIcon(icon);//用于显示叶节点的图标
setOpenIcon(icon);//用于显示扩展的非叶节点的图标
setClosedIcon(icon);//设置用于显示无扩展的非叶节点的图标
return super.getTreeCellRendererComponent(tree, value, sel, expanded,
leaf, row, hasFocus);
}
原文:https://www.cnblogs.com/jkliker/p/14925107.html