Подскажите как реализовать проводник Windows (аналог) - Java
Формулировка задачи:
Подскажите как реализовать программа
Решение задачи: «Подскажите как реализовать проводник Windows (аналог)»
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();
}
}