Windows10上的JavaFX8性能问题

Windows10上的JavaFX8性能问题,java,performance,javafx,javafx-8,windows-10,Java,Performance,Javafx,Javafx 8,Windows 10,我有一个基本的JavaFX程序,包括一个带有一些选项卡和几个按钮的窗口,等等。在OSX和Linux上,一切都很好,但在Windows 10上,移动主窗口似乎给我的图形卡带来了巨大的压力,每当我在应用程序的窗口和另一个窗口之间切换时,整个屏幕闪烁了一秒钟。这种情况只发生在这个应用程序中,该系统是一个高性能的游戏装备,具有G-Sync、980 GTX、i7-6700k、16 GB RAM、双显示器等,在各种CPU和GPU基准测试中表现非常出色,而且真的、真的不应该在屏幕上移动窗口时出现任何问题 当我

我有一个基本的JavaFX程序,包括一个带有一些选项卡和几个按钮的窗口,等等。在OSX和Linux上,一切都很好,但在Windows 10上,移动主窗口似乎给我的图形卡带来了巨大的压力,每当我在应用程序的窗口和另一个窗口之间切换时,整个屏幕闪烁了一秒钟。这种情况只发生在这个应用程序中,该系统是一个高性能的游戏装备,具有G-Sync、980 GTX、i7-6700k、16 GB RAM、双显示器等,在各种CPU和GPU基准测试中表现非常出色,而且真的、真的不应该在屏幕上移动窗口时出现任何问题

当我在任务管理器中观察Java进程时,RAM使用率没有任何明显的变化,在整个屏幕上移动窗口时,CPU使用率仅为~1.4%。当拖动窗口时,它似乎仅以20 FPS左右的速度更新,而在我的系统上移动任何其他窗口似乎都以60+FPS的速度运行。简而言之,在可视化呈现JavaFX窗口方面存在一些奇怪的性能瓶颈

据我所知,我没有使用任何3D功能或类似的方式,也没有在JavaFX方面做任何奇怪的事情。我的窗口创建代码基于Oracle关于如何初始化JavaFX窗口等的标准教程

下面是我的JavaFX窗口的初始化代码,以及控制器的init方法:

Main.start():

@Override
public void start(Stage primaryStage) throws Exception {
    primaryStage.hide();
    lockInstance();
    Platform.setImplicitExit(false);
    hostServices = HostServicesFactory.getInstance(this);
    AccountManager.init();
    if(OS.isLinux()) {
        CURRENT_OS = OS_TYPE.LINUX;
    } else if(OS.isMacOS()) {
        CURRENT_OS = OS_TYPE.OSX;
    } else if(OS.isWindows()) {
        CURRENT_OS = OS_TYPE.WINDOWS;
    }
    System.out.println("detected os: " + CURRENT_OS);

    //AccountManager.urlPrefix = "http://localhost:8080/api/";

    String res = "ERROR";
    try {
        res = JWSystem.getAppBundleName();
    } catch (Exception e) {}
    if(!res.contains("ERROR"))
        DEPLOY_MODE = true;
    System.out.println("DEPLOY_MODE: " + DEPLOY_MODE);

    prefs = Preferences.userNodeForPackage(this.getClass());
    FIRST_RUN = prefs.getBoolean("first_run", true);
    prefs.putBoolean("first_run", false);
    System.out.println("FIRST_RUN: " + FIRST_RUN);

    if(FIRST_RUN && DEPLOY_MODE) {
        createDesktopIcon();
    }

    // setup
    Thread t = new Thread(new Runnable() {
        @Override
        public void run() {
            if(CURRENT_OS == OS_TYPE.LINUX)
                SystemIcons.initUbuntuMimeTypes();
            if(FIRST_RUN && DEPLOY_MODE) {
                addStartupEntry();
            }
        }
    });
    t.start();

    // load UI
    Parent root = FXMLLoader.load(getClass().getResource("assets/main.fxml"));
    primaryStage.resizableProperty().setValue(Boolean.FALSE);
    primaryStage.setTitle("DuroCloud");
    Scene scene = new Scene(root, 600, 400);
    mainScene = scene;
    primaryStage.setScene(scene);
    mainStage = primaryStage;
    scene.getStylesheets().addAll(getClass().getResource("assets/overrides.css").toExternalForm());
    primaryStage.show();

    primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {
        public void handle(WindowEvent we) {
            Platform.exit();
            System.out.println("Stage is closing");
            System.exit(0);
        }
    });
}
    public void initialize(URL fxmlFileLocation, ResourceBundle resources) {

        faFolderIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-folder_256_0_464646_none.png"));
        faFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file_256_0_464646_none.png"));
        faTextFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file-text_256_0_464646_none.png"));
        faPdfFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file-pdf-o_256_0_464646_none.png"));
        faMovieFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file-movie-o_256_0_464646_none.png"));
        faImageFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file-image-o_256_0_464646_none.png"));
        faExcelFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file-excel-o_256_0_464646_none.png"));
        faCodeFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file-code-o_256_0_464646_none.png"));
        faAudioFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file-audio-o_256_0_464646_none.png"));
        faArchiveFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file-archive-o_256_0_464646_none.png"));

        // text files
        iconMap.put("txt", faTextFileIconImage);
        iconMap.put("doc", faTextFileIconImage);
        iconMap.put("docx", faTextFileIconImage);
        iconMap.put("rtf", faTextFileIconImage);
        iconMap.put("asc", faTextFileIconImage);
        iconMap.put("cfg", faTextFileIconImage);
        iconMap.put("log", faTextFileIconImage);
        iconMap.put("ini", faTextFileIconImage);
        iconMap.put("odt", faTextFileIconImage);

        // pdf
        iconMap.put("pdf", faPdfFileIconImage);

        // movie files
        String[] movie_formats = new String[] {"webm", "mkv", "flv", "vob", "ogv", "drc", "avi", "mov", "wmv", "yuv",
                "rm", "rmvb", "asf", "mp4", "m4p", "m4v", "mpg", "mp2", "mpeg", "mpe", "mpv", "svi",
                "3gp", "mxf", "roq", "nsv"};
        for(String format : movie_formats) {
            iconMap.put(format, faMovieFileIconImage);
        }

        // image files
        String[] image_formats = new String[] {"png", "bmp", "jpg", "jpeg", "tiff", "gif", "raw"};
        for(String format : image_formats) {
            iconMap.put(format, faImageFileIconImage);
        }

        // excel
        iconMap.put("xls", faExcelFileIconImage);
        iconMap.put("ods", faExcelFileIconImage);
        iconMap.put("xlsx", faExcelFileIconImage);

        // code
        iconMap.put("rb", faCodeFileIconImage);
        iconMap.put("js", faCodeFileIconImage);
        iconMap.put("html", faCodeFileIconImage);
        iconMap.put("htm", faCodeFileIconImage);
        iconMap.put("css", faCodeFileIconImage);
        iconMap.put("xml", faCodeFileIconImage);
        iconMap.put("php", faCodeFileIconImage);
        iconMap.put("exe", faCodeFileIconImage);
        iconMap.put("sh", faCodeFileIconImage);
        iconMap.put("py", faCodeFileIconImage);
        iconMap.put("bat", faCodeFileIconImage);
        iconMap.put("jar", faCodeFileIconImage);
        iconMap.put("java", faCodeFileIconImage);
        iconMap.put("c", faCodeFileIconImage);
        iconMap.put("cpp", faCodeFileIconImage);
        iconMap.put("h", faCodeFileIconImage);
        iconMap.put("makefile", faCodeFileIconImage);
        iconMap.put("make", faCodeFileIconImage);

        // audio
        iconMap.put("asf", faAudioFileIconImage);
        iconMap.put("mp3", faAudioFileIconImage);
        iconMap.put("flac", faAudioFileIconImage);
        iconMap.put("ogg", faAudioFileIconImage);
        iconMap.put("wav", faAudioFileIconImage);
        iconMap.put("wma", faAudioFileIconImage);
        iconMap.put("webm", faAudioFileIconImage);

        // archive
        iconMap.put("7z", faArchiveFileIconImage);
        iconMap.put("zip", faArchiveFileIconImage);
        iconMap.put("rar", faArchiveFileIconImage);
        iconMap.put("tar", faArchiveFileIconImage);
        iconMap.put("gz", faArchiveFileIconImage);
        iconMap.put("bz", faArchiveFileIconImage);


        VBox accountAltVbox = new VBox();
        HBox accountAltHbox = new HBox();
        accountAltHbox.setAlignment(Pos.CENTER);
        accountAltVbox.setLayoutX(60.0);
        accountAltVbox.setLayoutY(40.0);
        accountAltVbox.setSpacing(8);
        accountEmailLabel.setText("test");
        accountEmailLabel.setFont(new Font(18));
        accountAltContent.setPrefWidth(800);
        accountAltContent.setPrefHeight(800);
        accountAltContent.getChildren().add(accountAltVbox);
        accountAltVbox.getChildren().add(new Label("Logged in as:"));
        accountAltHbox.getChildren().add(accountEmailLabel);
        accountAltVbox.getChildren().add(accountAltHbox);
        accountAltVbox.getChildren().add(accountLogoutButton);

        UIFonts.setFontAwesomeGlyph(upButton, FontAwesomeIcon.LEVEL_UP);
        UIFonts.setFontAwesomeGlyph(refreshButton, FontAwesomeIcon.REFRESH);
        UIFonts.setFontAwesomeGlyph(openButton, FontAwesomeIcon.FOLDER_OPEN);
        UIFonts.setFontAwesomeGlyph(saveButton, FontAwesomeIcon.DOWNLOAD);
        UIFonts.setFontAwesomeGlyph(deleteButton, FontAwesomeIcon.TRASH);
        UIFonts.setFontAwesomeGlyph(addButton, FontAwesomeIcon.PLUS);
        UIFonts.setFontAwesomeGlyph(backupDirectoriesButton, FontAwesomeIcon.CLOUD);

        loginEmailField.setOnKeyPressed(this::handleEmailFieldEnter);
        loginPasswordField.setOnKeyPressed(this::handlePasswordFieldEnter);
        loginButton.setOnAction(this::handleLoginButtonAction);
        forgotPasswordLink.setOnAction(this::visitForgotPassword);
        accountLogoutButton.setOnAction(this::handleLogoutButton);
        refreshButton.setOnAction(this::handleRefreshButton);
        upButton.setOnAction(this::handleUpButton);
        addButton.setOnAction(this::handleAddButton);
        deleteButton.setOnAction(this::handleDeleteButton);

        fileBrowser.setCellFactory(new Callback<ListView<BrowserItem>, ListCell<BrowserItem>>() {
            @Override
            public ListCell<BrowserItem> call(ListView<BrowserItem> param) {
                return new BrowserItemCell();
            }
        });

        fileBrowser.setOnMouseClicked(new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {
                if(event.getClickCount() == 2) {
                    BrowserItem selected = fileBrowser.getSelectionModel().getSelectedItem();
                    if(selected != null) {
                        if(selected.isFile) {
                            downloadSelected();
                        } else {
                            currentDirectoryId = selected.file.file_id;
                            refresh();
                        }
                    }
                }
            }
        });

        openButton.setDisable(true);
        saveButton.setDisable(true);
        deleteButton.setDisable(false);

        if(!AccountManager.loggedIn()) {
            mainTabPane.getSelectionModel().select(accountTab);
            optionsTab.setDisable(true);
            myFilesTab.setDisable(true);
        }
    }
@覆盖
public void start(Stage primaryStage)引发异常{
primaryStage.hide();
lockInstance();
Platform.setImplicitExit(false);
hostServices=HostServicesFactory.getInstance(此);
AccountManager.init();
if(OS.isLinux()){
当前_OS=OS_TYPE.LINUX;
}else if(OS.isMacOS()){
当前_OS=OS_TYPE.OSX;
}else if(OS.isWindows()){
当前_OS=OS_TYPE.WINDOWS;
}
System.out.println(“检测到的操作系统:+当前操作系统”);
//AccountManager.urlPrefix=”http://localhost:8080/api/";
String res=“ERROR”;
试一试{
res=JWSystem.getAppBundleName();
}捕获(例外e){}
如果(!res.contains(“ERROR”))
部署模式=真;
System.out.println(“部署模式:+部署模式”);
prefs=Preferences.userNodeForPackage(this.getClass());
FIRST_RUN=prefs.getBoolean(“FIRST_RUN”,true);
prefs.putBoolean(“第一次运行”,false);
System.out.println(“第一次运行:+第一次运行”);
如果(首次运行和部署模式){
createDesktopIcon();
}
//设置
线程t=新线程(新的可运行线程(){
@凌驾
公开募捐{
if(当前的_OS==OS_TYPE.LINUX)
SystemIcons.initUbuntuMimeTypes();
if(第一次运行和部署\u模式){
addStartupEntry();
}
}
});
t、 start();
//加载用户界面
父根=fxmloader.load(getClass().getResource(“assets/main.fxml”);
primaryStage.ResizebleProperty().setValue(Boolean.FALSE);
初级阶段。设置标题(“DuroCloud”);
场景=新场景(root,600400);
主场景=场景;
初级阶段。场景(场景);
主干=初级阶段;
scene.getStylesheets().addAll(getClass().getResource(“assets/overrides.css”).toExternalForm());
primaryStage.show();
setOnCloseRequest(新的EventHandler()){
公共无效句柄(WindowEvent we){
Platform.exit();
System.out.println(“阶段结束”);
系统出口(0);
}
});
}
控制器。初始化():

@Override
public void start(Stage primaryStage) throws Exception {
    primaryStage.hide();
    lockInstance();
    Platform.setImplicitExit(false);
    hostServices = HostServicesFactory.getInstance(this);
    AccountManager.init();
    if(OS.isLinux()) {
        CURRENT_OS = OS_TYPE.LINUX;
    } else if(OS.isMacOS()) {
        CURRENT_OS = OS_TYPE.OSX;
    } else if(OS.isWindows()) {
        CURRENT_OS = OS_TYPE.WINDOWS;
    }
    System.out.println("detected os: " + CURRENT_OS);

    //AccountManager.urlPrefix = "http://localhost:8080/api/";

    String res = "ERROR";
    try {
        res = JWSystem.getAppBundleName();
    } catch (Exception e) {}
    if(!res.contains("ERROR"))
        DEPLOY_MODE = true;
    System.out.println("DEPLOY_MODE: " + DEPLOY_MODE);

    prefs = Preferences.userNodeForPackage(this.getClass());
    FIRST_RUN = prefs.getBoolean("first_run", true);
    prefs.putBoolean("first_run", false);
    System.out.println("FIRST_RUN: " + FIRST_RUN);

    if(FIRST_RUN && DEPLOY_MODE) {
        createDesktopIcon();
    }

    // setup
    Thread t = new Thread(new Runnable() {
        @Override
        public void run() {
            if(CURRENT_OS == OS_TYPE.LINUX)
                SystemIcons.initUbuntuMimeTypes();
            if(FIRST_RUN && DEPLOY_MODE) {
                addStartupEntry();
            }
        }
    });
    t.start();

    // load UI
    Parent root = FXMLLoader.load(getClass().getResource("assets/main.fxml"));
    primaryStage.resizableProperty().setValue(Boolean.FALSE);
    primaryStage.setTitle("DuroCloud");
    Scene scene = new Scene(root, 600, 400);
    mainScene = scene;
    primaryStage.setScene(scene);
    mainStage = primaryStage;
    scene.getStylesheets().addAll(getClass().getResource("assets/overrides.css").toExternalForm());
    primaryStage.show();

    primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {
        public void handle(WindowEvent we) {
            Platform.exit();
            System.out.println("Stage is closing");
            System.exit(0);
        }
    });
}
    public void initialize(URL fxmlFileLocation, ResourceBundle resources) {

        faFolderIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-folder_256_0_464646_none.png"));
        faFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file_256_0_464646_none.png"));
        faTextFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file-text_256_0_464646_none.png"));
        faPdfFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file-pdf-o_256_0_464646_none.png"));
        faMovieFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file-movie-o_256_0_464646_none.png"));
        faImageFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file-image-o_256_0_464646_none.png"));
        faExcelFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file-excel-o_256_0_464646_none.png"));
        faCodeFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file-code-o_256_0_464646_none.png"));
        faAudioFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file-audio-o_256_0_464646_none.png"));
        faArchiveFileIconImage = new Image(this.getClass().getResourceAsStream("assets/fa-file-archive-o_256_0_464646_none.png"));

        // text files
        iconMap.put("txt", faTextFileIconImage);
        iconMap.put("doc", faTextFileIconImage);
        iconMap.put("docx", faTextFileIconImage);
        iconMap.put("rtf", faTextFileIconImage);
        iconMap.put("asc", faTextFileIconImage);
        iconMap.put("cfg", faTextFileIconImage);
        iconMap.put("log", faTextFileIconImage);
        iconMap.put("ini", faTextFileIconImage);
        iconMap.put("odt", faTextFileIconImage);

        // pdf
        iconMap.put("pdf", faPdfFileIconImage);

        // movie files
        String[] movie_formats = new String[] {"webm", "mkv", "flv", "vob", "ogv", "drc", "avi", "mov", "wmv", "yuv",
                "rm", "rmvb", "asf", "mp4", "m4p", "m4v", "mpg", "mp2", "mpeg", "mpe", "mpv", "svi",
                "3gp", "mxf", "roq", "nsv"};
        for(String format : movie_formats) {
            iconMap.put(format, faMovieFileIconImage);
        }

        // image files
        String[] image_formats = new String[] {"png", "bmp", "jpg", "jpeg", "tiff", "gif", "raw"};
        for(String format : image_formats) {
            iconMap.put(format, faImageFileIconImage);
        }

        // excel
        iconMap.put("xls", faExcelFileIconImage);
        iconMap.put("ods", faExcelFileIconImage);
        iconMap.put("xlsx", faExcelFileIconImage);

        // code
        iconMap.put("rb", faCodeFileIconImage);
        iconMap.put("js", faCodeFileIconImage);
        iconMap.put("html", faCodeFileIconImage);
        iconMap.put("htm", faCodeFileIconImage);
        iconMap.put("css", faCodeFileIconImage);
        iconMap.put("xml", faCodeFileIconImage);
        iconMap.put("php", faCodeFileIconImage);
        iconMap.put("exe", faCodeFileIconImage);
        iconMap.put("sh", faCodeFileIconImage);
        iconMap.put("py", faCodeFileIconImage);
        iconMap.put("bat", faCodeFileIconImage);
        iconMap.put("jar", faCodeFileIconImage);
        iconMap.put("java", faCodeFileIconImage);
        iconMap.put("c", faCodeFileIconImage);
        iconMap.put("cpp", faCodeFileIconImage);
        iconMap.put("h", faCodeFileIconImage);
        iconMap.put("makefile", faCodeFileIconImage);
        iconMap.put("make", faCodeFileIconImage);

        // audio
        iconMap.put("asf", faAudioFileIconImage);
        iconMap.put("mp3", faAudioFileIconImage);
        iconMap.put("flac", faAudioFileIconImage);
        iconMap.put("ogg", faAudioFileIconImage);
        iconMap.put("wav", faAudioFileIconImage);
        iconMap.put("wma", faAudioFileIconImage);
        iconMap.put("webm", faAudioFileIconImage);

        // archive
        iconMap.put("7z", faArchiveFileIconImage);
        iconMap.put("zip", faArchiveFileIconImage);
        iconMap.put("rar", faArchiveFileIconImage);
        iconMap.put("tar", faArchiveFileIconImage);
        iconMap.put("gz", faArchiveFileIconImage);
        iconMap.put("bz", faArchiveFileIconImage);


        VBox accountAltVbox = new VBox();
        HBox accountAltHbox = new HBox();
        accountAltHbox.setAlignment(Pos.CENTER);
        accountAltVbox.setLayoutX(60.0);
        accountAltVbox.setLayoutY(40.0);
        accountAltVbox.setSpacing(8);
        accountEmailLabel.setText("test");
        accountEmailLabel.setFont(new Font(18));
        accountAltContent.setPrefWidth(800);
        accountAltContent.setPrefHeight(800);
        accountAltContent.getChildren().add(accountAltVbox);
        accountAltVbox.getChildren().add(new Label("Logged in as:"));
        accountAltHbox.getChildren().add(accountEmailLabel);
        accountAltVbox.getChildren().add(accountAltHbox);
        accountAltVbox.getChildren().add(accountLogoutButton);

        UIFonts.setFontAwesomeGlyph(upButton, FontAwesomeIcon.LEVEL_UP);
        UIFonts.setFontAwesomeGlyph(refreshButton, FontAwesomeIcon.REFRESH);
        UIFonts.setFontAwesomeGlyph(openButton, FontAwesomeIcon.FOLDER_OPEN);
        UIFonts.setFontAwesomeGlyph(saveButton, FontAwesomeIcon.DOWNLOAD);
        UIFonts.setFontAwesomeGlyph(deleteButton, FontAwesomeIcon.TRASH);
        UIFonts.setFontAwesomeGlyph(addButton, FontAwesomeIcon.PLUS);
        UIFonts.setFontAwesomeGlyph(backupDirectoriesButton, FontAwesomeIcon.CLOUD);

        loginEmailField.setOnKeyPressed(this::handleEmailFieldEnter);
        loginPasswordField.setOnKeyPressed(this::handlePasswordFieldEnter);
        loginButton.setOnAction(this::handleLoginButtonAction);
        forgotPasswordLink.setOnAction(this::visitForgotPassword);
        accountLogoutButton.setOnAction(this::handleLogoutButton);
        refreshButton.setOnAction(this::handleRefreshButton);
        upButton.setOnAction(this::handleUpButton);
        addButton.setOnAction(this::handleAddButton);
        deleteButton.setOnAction(this::handleDeleteButton);

        fileBrowser.setCellFactory(new Callback<ListView<BrowserItem>, ListCell<BrowserItem>>() {
            @Override
            public ListCell<BrowserItem> call(ListView<BrowserItem> param) {
                return new BrowserItemCell();
            }
        });

        fileBrowser.setOnMouseClicked(new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {
                if(event.getClickCount() == 2) {
                    BrowserItem selected = fileBrowser.getSelectionModel().getSelectedItem();
                    if(selected != null) {
                        if(selected.isFile) {
                            downloadSelected();
                        } else {
                            currentDirectoryId = selected.file.file_id;
                            refresh();
                        }
                    }
                }
            }
        });

        openButton.setDisable(true);
        saveButton.setDisable(true);
        deleteButton.setDisable(false);

        if(!AccountManager.loggedIn()) {
            mainTabPane.getSelectionModel().select(accountTab);
            optionsTab.setDisable(true);
            myFilesTab.setDisable(true);
        }
    }
public void初始化(URL fxmlFileLocation,ResourceBundle资源){
faFolderIconImage=新图像(this.getClass().getResourceAsStream(“assets/fa-folder_256_0_464646_none.png”);
faFileIconImage=新图像(this.getClass().getResourceAsStream(“assets/fa-file_256_0_464646_none.png”);
faTextFileIconImage=新图像(this.getClass().getResourceAsStream(“assets/fa-file-text_256_0_464646_none.png”);
faPdfFileIconImage=新图像(this.getClass().getResourceAsStream(“assets/fa-file-pdf-o_256_0_464646_none.png”);
faMovieFileIconImage=新图像(this.getClass().getResourceAsStream(“assets/fa-file-movie-o_256_0_464646_none.png”);
faImageFileIconImage=新图像(this.getClass().getResourceAsStream(“assets/fa-file-Image-o_256_0_464646_none.png”);
faExcelFileIconImage=新图像(this.getClass().getResourceAsStream(“assets/fa-file-excel-o_256_0_464646_none.png”);
faCodeFileIconImage=新图像(this.getClass().getResourceAsStream(“assets/fa-file-code-o_256_0_464646_none.png”);
faAudioFileIconImage=新图像(this.getClass().getResourceAsStream(“assets/fa-file-audio-o_256_0_464646_none.png”);
faArchiveFileIconImage=新图像(this.getClass().getResourceAsStream(“assets/fa-file-archive-o_256_0_464646_none.png”);
//文本文件
iconMap.put(“txt”,faTextFileIconImage);
iconMap.put(“doc”,faTextFileIconImage);
iconMap.put(“docx”,faTextFileIconImage);
iconMap.put(“rtf”,faTextFileIconImage);
iconMap.put(“asc”,faTextFileIconImage);
iconMap.put(“cfg”,faTextFileIconImage);
iconMap.put(“log”,faTextFileIconImage);
iconMap.put(“ini”,faTextFileIconImage);
iconMap.put(“odt”,faTextFileIconImage);
//pdf
iconMap.put(“pdf”,faPdfFileIconImage);
//电影文件
String[]movie_formats=新字符串[]{“webm”、“mkv”、“flv”、“vob”、“ogv”、“drc”、“avi”、“mov”、“wmv”、“yuv”,
“rm”、“rmvb”、“asf”、“mp4”、“m4p”、“m4v”、“mpg”、“mp2”、“mpeg”、“mpe”、“mpv”、“svi”,
“3gp”、“mxf”、“roq”、“nsv”};
用于(字符串格式:电影格式){
iconMap.put(格式,文件图标);
}
//图像文件
字符串[]图像\格式=新字符串[]{“png”、“bmp”、“jpg”、“jpeg”、“tiff”,