Подскажите как реализовать проводник Windows (аналог) - Java

Формулировка задачи:

Подскажите как реализовать программа

Код к задаче: «Подскажите как реализовать проводник Windows (аналог) - Java»

textual
package swing.files;
 
import javafx.application.Application;
import javafx.beans.Observable;
import javafx.collections.FXCollections;
import javafx.scene.Scene;
import javafx.scene.control.SplitPane;
import javafx.stage.Stage;
import org.eclipse.fx.ui.controls.filesystem.*;
 
import java.nio.file.Paths;
 
public class DirectoryViewSample extends Application {
 
  private static RootDirItem rootDirItem;
 
  @Override
  public void start(Stage primaryStage) throws Exception {
    rootDirItem = ResourceItem.createObservedPath(
      Paths.get("C:/temp"));
 
    DirectoryTreeView tv = new DirectoryTreeView();
    tv.setIconSize(IconSize.MEDIUM);
    tv.setRootDirectories(
      FXCollections.observableArrayList(rootDirItem));
 
    DirectoryView v = new DirectoryView();
    v.setIconSize(IconSize.MEDIUM);
 
    tv.getSelectedItems().addListener( (Observable o) -> {
      if( ! tv.getSelectedItems().isEmpty() ) {
        v.setDir(tv.getSelectedItems().get(0));
      } else {
        v.setDir(null);
      }
    });
 
    ResourcePreview prev = new ResourcePreview();
    v.getSelectedItems().addListener((Observable o) -> {
      if( v.getSelectedItems().size() == 1 ) {
        prev.setItem(v.getSelectedItems().get(0));
      } else {
        prev.setItem(null);
      }
    });
 
    SplitPane p = new SplitPane(tv,v, prev);
    p.setDividerPositions(0.3,0.8);
 
    Scene s = new Scene(p,500,500);
    primaryStage.setScene(s);
    primaryStage.show();
  }
 
  public static void main(String[] args) {
    Application.launch(args);
    rootDirItem.dispose();
  }
}

12   голосов, оценка 4.083 из 5


СОХРАНИТЬ ССЫЛКУ