xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 14KB
    文件類型: .java
    金幣: 1
    下載: 1 次
    發(fā)布日期: 2021-05-10
  • 語(yǔ)言: Java
  • 標(biāo)簽: JTree??JAVA??

資源簡(jiǎn)介

該程序能夠在jFrame的窗口下顯示一棵文件樹(shù),樹(shù)的節(jié)點(diǎn)與系統(tǒng)文件相對(duì)應(yīng),右鍵可以顯示菜單,節(jié)點(diǎn)有windows的圖標(biāo),非常好的一個(gè)java程序

資源截圖

代碼片段和文件信息

//只要點(diǎn)擊節(jié)點(diǎn)就會(huì)選中節(jié)點(diǎn),如果是左擊且是目錄,不僅可以選中并添加子節(jié)點(diǎn),還可以展開(kāi);如果是右擊,則可以選中,也添加子節(jié)點(diǎn),但不展開(kāi)
//只要選中節(jié)點(diǎn),節(jié)點(diǎn)監(jiān)視器就會(huì)考慮該節(jié)點(diǎn)是否是目錄,如果是目錄就會(huì)添加子節(jié)點(diǎn)
//由于java中沒(méi)有直接的copy文件操作,所以右鍵菜單項(xiàng)不設(shè)復(fù)制、剪切和黏貼,但是可以用拖動(dòng)來(lái)實(shí)現(xiàn)剪切和黏貼
//------------------------------------
//圖標(biāo)還沒(méi)有做
//運(yùn)行可執(zhí)行文件做了,但是對(duì)于空格的處理不理想
//鼠標(biāo)右擊刪除已經(jīng)完全做好了,重命名也做好了,打算不做new了在主界面上有new的按鈕
//但是最好事先主界面上new和文件樹(shù)的同步
//如果在該程序之外自行新建或刪除文件,將無(wú)法顯示,可以再下面添加一個(gè)刷新鍵
//------------------------------------
/*****
類?FileSystemView
FileSystemView?是?JFileChooser?的文件系統(tǒng)網(wǎng)關(guān)。由于?JDK1.1?File?API?不允許對(duì)諸如根分區(qū)、文件類型信息或隱藏文件位之類的信息進(jìn)行訪問(wèn),
此類被設(shè)計(jì)成能夠直接獲得盡可能多的特定于?OS?的文件系統(tǒng)信息。?
FileSystemView
Icon?getSystemIcon(File?f)?
??????????在系統(tǒng)文件瀏覽器中顯示的文件、目錄或文件夾的圖標(biāo)。?

**/
import?javax.swing.*;
import?javax.swing.tree.*;
import?java.awt.event.*;
import?java.awt.*;
import?javax.swing.event.*;
import?java.io.*;
import?java.io.File.*;
import?javax.swing.JOptionPane;
import?javax.swing.filechooser.FileSystemView;
public?class?MyTree?
{
Jframe?jf;
JTree?tree;
DefaultTreeModel?model;
PopupMenu?pop?=?new?PopupMenu();//右鍵菜單
MenuItem?deleteItem?=?new?MenuItem(“刪除“);
MenuItem?renameItem?=?new?MenuItem(“重命名“);
DefaultMutableTreeNode?root?=?new?DefaultMutableTreeNode(new?NodeData(null“我的電腦“));?
//-----用于重命名時(shí)生成一個(gè)原節(jié)點(diǎn)的克隆體-------
DefaultMutableTreeNode?aClone;
//----------------------------------------------
public?void?init()
{
jf?=?new?Jframe(“樹(shù)“);
File[]?roots?=?File.listRoots();//獲得系統(tǒng)根目錄文件
for(int?i?=?0;i? {
DefaultMutableTreeNode?node?=?new?DefaultMutableTreeNode(new?NodeData(roots[i]roots[i].getAbsolutePath()));
root.add(node);
}
tree?=?new?JTree(root);
model?=?(DefaultTreeModel)?tree.getModel();
//一次只能選中一個(gè)節(jié)點(diǎn)
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
//設(shè)置使用定制的節(jié)點(diǎn)繪制器
tree.setCellRenderer(new?FolderRenderer());

//-------當(dāng)用戶編輯完節(jié)點(diǎn)model將產(chǎn)生一個(gè)model事件進(jìn)而通知事件監(jiān)聽(tīng)器節(jié)點(diǎn)已經(jīng)修改了----
//e.path()?返回已更改節(jié)點(diǎn)的父節(jié)點(diǎn)的路徑。
//e.childIndices()?返回更改節(jié)點(diǎn)的索引。
model.addTreeModelListener(new?TreeModelListener()
{
public?void?treeNodesChanged(TreeModelEvent?e)
{
????//獲得編輯后的節(jié)點(diǎn)的父節(jié)點(diǎn)
DefaultMutableTreeNode?parent?=?(DefaultMutableTreeNode)(e.getTreePath().getLastPathComponent());
DefaultMutableTreeNode?node;
int?index;
/*

*?If?the?event?lists?children?then?the?changed

*?node?is?the?child?of?the?node?we‘ve?already

*?gotten.??Otherwise?the?changed?node?and?the

*?specified?node?are?the?same.

*/
try?
{
index?=?e.getChildIndices()[0];
node?=?(DefaultMutableTreeNode)(parent.getChildAt(index));

//System.out.println(aClone.toString());
//克隆體更新名稱,file不變
((NodeData)aClone.getUserobject()).ChangeString(node.toString());
//刪除選定節(jié)點(diǎn)
model.removeNodeFromParent(node);
//添加克隆體
model.insertNodeInto(aCloneparentindex);
}?
catch?(NullPointerException?exc)?
{
System.out.println(“model?error“);
}
//系統(tǒng)實(shí)現(xiàn)改名
NodeData?data?=?(NodeData)?aClon

評(píng)論

共有 條評(píng)論

相關(guān)資源