最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javafx簡單實(shí)現(xiàn)【我的電腦資源管理器】效果

 更新時間:2015年09月21日 12:10:06   作者:21paradox  
這篇文章主要介紹了Javafx簡單實(shí)現(xiàn)【我的電腦資源管理器】效果,涉及Javafx操作系統(tǒng)文件模擬資源管理器的實(shí)現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下

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

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 實(shí)現(xiàn)\"我的電腦\"資源管理器");
    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. 運(yùn)行效果截圖:

希望本文所述對大家的java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Java實(shí)現(xiàn)解析ini文件對應(yīng)到JavaBean中

    Java實(shí)現(xiàn)解析ini文件對應(yīng)到JavaBean中

    ini 文件是Initialization File的縮寫,即初始化文件,是windows的系統(tǒng)配置文件所采用的存儲格式。這篇文章主要介紹了通過Java實(shí)現(xiàn)解析ini文件對應(yīng)到JavaBean中,需要的可以參考一下
    2022-01-01
  • mall整合SpringSecurity及JWT認(rèn)證授權(quán)實(shí)戰(zhàn)下

    mall整合SpringSecurity及JWT認(rèn)證授權(quán)實(shí)戰(zhàn)下

    這篇文章主要為大家介紹了mall整合SpringSecurity及JWT認(rèn)證授權(quán)實(shí)戰(zhàn)第二篇,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 解決Eclipse add external jars運(yùn)行出現(xiàn)java.lang.NoClassDefFoundError的方法

    解決Eclipse add external jars運(yùn)行出現(xiàn)java.lang.NoClassDefFoundErro

    本篇文章對Eclipse add external jars導(dǎo)致運(yùn)行出現(xiàn)java.lang.NoClassDefFoundError的解決方法進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下
    2013-05-05
  • IDEA中Maven的一些常用操作指南

    IDEA中Maven的一些常用操作指南

    intellij idea是一款很流行好用的集成開發(fā)環(huán)境軟件,maven是使用很廣泛的構(gòu)建工具,java開發(fā)者日常少不了與這兩種工具打交道,下面這篇文章主要給大家介紹了關(guān)于IDEA中Maven的一些常用操作指南,需要的朋友可以參考下
    2024-06-06
  • springboot @ConditionalOnMissingBean注解的作用詳解

    springboot @ConditionalOnMissingBean注解的作用詳解

    這篇文章主要介紹了springboot @ConditionalOnMissingBean注解的作用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • java使用RandomAccessFile類基于指針讀寫文件實(shí)例代碼

    java使用RandomAccessFile類基于指針讀寫文件實(shí)例代碼

    這篇文章主要介紹了java使用RandomAccessFile類基于指針讀寫文件實(shí)例代碼,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • IDEA無法識別相關(guān)module模塊問題的解決過程

    IDEA無法識別相關(guān)module模塊問題的解決過程

    這篇文章主要給大家介紹了關(guān)于IDEA無法識別相關(guān)module模塊問題的解決過程,文中通過圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用IDEA具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • SpringBoot啟動報錯的11個高頻問題排查與解決終極指南

    SpringBoot啟動報錯的11個高頻問題排查與解決終極指南

    這篇文章主要為大家詳細(xì)介紹了SpringBoot啟動報錯的11個高頻問題的排查與解決,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2025-03-03
  • java實(shí)現(xiàn)用戶自動登錄

    java實(shí)現(xiàn)用戶自動登錄

    這篇文章主要為大家詳細(xì)介紹了java用戶自動登錄的實(shí)現(xiàn)方法,分為六個步驟實(shí)現(xiàn)用戶自動登錄,并驗(yàn)證用戶是否已經(jīng)登錄,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Java中對象的克隆詳解

    Java中對象的克隆詳解

    這篇文章主要介紹了Java中對象的克隆詳解,Java中對象的復(fù)制分為淺復(fù)制與深復(fù)制的不同之處就在于深復(fù)制還會復(fù)制對象的引用對象,需要的朋友可以參考下
    2023-08-08

最新評論

库伦旗| 陕西省| 东阳市| 育儿| 渑池县| 长阳| 柘城县| 清远市| 荥经县| 微博| 翁源县| 洪洞县| 江山市| 军事| 镇康县| 镇雄县| 长葛市| 新晃| 克山县| 山西省| 云龙县| 平乐县| 东明县| 霍山县| 金湖县| 高安市| 昭平县| 宝清县| 图片| 南康市| 大同市| 桂东县| 盖州市| 西充县| 保定市| 定日县| 云霄县| 沙雅县| 江都市| 东莞市| 砚山县|