国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Javafx簡單實現【我的電腦資源管理器】效果

2019-11-26 14:59:08
字體:
來源:轉載
供稿:網友

本文實例講述了Javafx簡單實現【我的電腦資源管理器】效果。分享給大家供大家參考。具體如下:

1. java代碼:

package ttt;import java.io.File;import javafx.application.Application;import javafx.beans.value.ChangeListener;import javafx.beans.value.ObservableValue;import javafx.collections.FXCollections;import javafx.collections.ObservableList;import javafx.scene.Scene;import javafx.scene.control.TableColumn;import javafx.scene.control.TableView;import javafx.scene.control.TreeItem;import javafx.scene.layout.BorderPane;import javafx.scene.layout.HBox;import javafx.scene.layout.Priority;import javafx.stage.Stage;import javafx.scene.control.TreeView;import javafx.scene.control.cell.PropertyValueFactory;public class TreeViews extends Application {  public static ObservableList<FileDetail> data = FXCollections.observableArrayList();  public static void main(String[] args) {    launch(args);  }  @Override  public void start(Stage primaryStage) {    primaryStage.setTitle("Javafx 實現/"我的電腦/"資源管理器");    TreeItem<File> rootItem = new TreeItem<>(new File(System.getenv("COMPUTERNAME")));    for (File file : File.listRoots()) {      FileTreeItem rootsitem = new FileTreeItem(file);      rootItem.getChildren().add(rootsitem);    }    TreeView<File> tree = new TreeView<File>(rootItem);    HBox root = new HBox();    TableView<FileDetail> tableView = new TableView<>(data);    TableColumn<FileDetail, String> firstColumn = new TableColumn<>("文件");    firstColumn.setCellValueFactory(new PropertyValueFactory<FileDetail, String>("FileName"));    firstColumn.setPrefWidth(120);    TableColumn<FileDetail, String> secondColumn = new TableColumn<>("類型");    secondColumn.setCellValueFactory(new PropertyValueFactory<FileDetail, String>("type"));    secondColumn.setPrefWidth(120);    TableColumn<FileDetail, String> thirdColumn = new TableColumn<>("最后修改");    thirdColumn.setCellValueFactory(new PropertyValueFactory<FileDetail, String>("LastModified"));    thirdColumn.setPrefWidth(200);    tableView.getColumns().setAll(firstColumn, secondColumn, thirdColumn);    HBox.setHgrow(tree, Priority.ALWAYS);    HBox.setHgrow(tableView, Priority.ALWAYS);    root.getChildren().addAll(tree,tableView);    tree.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<TreeItem<File>>() {      @Override      public void changed(ObservableValue<? extends TreeItem<File>> observable, TreeItem<File> oldValue,          TreeItem<File> newValue) {        ObservableList<TreeItem<File>> treelist = newValue.getChildren();        ObservableList<FileDetail> tablelist = FXCollections.observableArrayList();        for (TreeItem<File> item : treelist) {          FileDetail filedetail = new FileDetail(item.getValue());          tablelist.add(filedetail);        }        data.setAll(tablelist);      }    });    primaryStage.setScene(new Scene(root));    primaryStage.setHeight(600);    primaryStage.show();  }}

2. java代碼:

package ttt;import java.io.File;import java.text.SimpleDateFormat;import java.util.Date;public class FileDetail {  private String FileName;  private String LastModified;  private boolean isFile;  private boolean isFolder;  private boolean exists;  private String type;  private long length;  private SimpleDateFormat fmt;  public FileDetail(File file) {    isFile = file.isFile();    isFolder = file.isDirectory();    exists = file.exists();    if (exists) {      this.FileName = file.getName();      fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm");      Date date = new Date(file.lastModified());      this.LastModified = fmt.format(date);      this.length = file.length();      if (isFolder) {        this.type = "Folder";      } else        this.type = String.valueOf(this.length / (long) 1024) + "KB";    }  }  public String getFileName() {    return FileName;  }  public void setFileName(String fileName) {    FileName = fileName;  }  public String getLastModified() {    return LastModified;  }  public void setLastModified(String lastModified) {    LastModified = lastModified;  }  public String getType() {    return type;  }  public void setType(String type) {    this.type = type;  }  public long getLength() {    return length;  }  public void setLength(long length) {    this.length = length;  }}

3. java代碼:

package ttt;import java.io.File;import javafx.collections.FXCollections;import javafx.collections.ObservableList;import javafx.scene.control.TreeItem;public class FileTreeItem extends TreeItem<File> {   private boolean isLeaf;   private boolean isFirstTimeChildren = true;   private boolean isFirstTimeLeaf = true;  public FileTreeItem(File file) {    super(file);  }  @Override  public ObservableList<TreeItem<File>> getChildren() {     if (isFirstTimeChildren) {      isFirstTimeChildren = false;       super.getChildren().setAll(buildChildren(this));    }       return super.getChildren();   }  @Override  public boolean isLeaf() {    if (isFirstTimeLeaf) {      isFirstTimeLeaf = false;      File f = (File) getValue();      isLeaf = f.isFile();    }    return isLeaf;  }private ObservableList<TreeItem<File>> buildChildren(TreeItem<File> TreeItem) {  File f = TreeItem.getValue();  if (f != null && f.isDirectory()) {    File[] files = f.listFiles();    if (files != null) {      ObservableList<TreeItem<File>> children = FXCollections.observableArrayList();      for (File childFile : files) {        children.add(new FileTreeItem (childFile));      }      return children;    }  }  return FXCollections.emptyObservableList();}}

4. 運行效果截圖:

希望本文所述對大家的java程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 怀安县| 勃利县| 河北区| 余江县| 喀喇沁旗| 兖州市| 沈丘县| 交口县| 浮山县| 沁源县| 新郑市| 武安市| 璧山县| 宜昌市| 乐亭县| 瓦房店市| 渑池县| 樟树市| 通城县| 新兴县| 四子王旗| 新宾| 高尔夫| 文昌市| 清丰县| 修文县| 南京市| 绥阳县| 汉中市| 大冶市| 铜鼓县| 瓮安县| 鄯善县| 永济市| 陵川县| 远安县| 宜良县| 宁德市| 永善县| 大田县| 奇台县|