簡體   English   中英

如何通過JFileChooser將所有選定的文件絕對路徑/名稱設置為JTextField

[英]How to set all selected file absolute paths/names by JFileChooser into a JTextField

我有一個帶有JButton小型應用程序,用於打開JFileChooser來選擇多個文件。 因此,當我單擊其approve button我應該能夠將所有選定文件的絕對路徑或名稱設置為JTextField (在我的情況下為jTextField1 )。

如果我只選擇了1個文件,但沒有選擇多個文件,我知道該怎么做

我怎樣才能做到這一點???

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    JFileChooser copy = new JFileChooser();
    copy.setApproveButtonText("Copy");
    copy.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
    copy.setMultiSelectionEnabled(true);
    int copyDialog = copy.showOpenDialog(null);
    File[] files = copy.getSelectedFiles();
    if (copyDialog == JFileChooser.APPROVE_OPTION) {
        if(files.length>=2){
            jTextField1.setText(files.toString()); // I need to set jTextField1's text with all the selected file paths or names
        }else{
            jTextField1.setText(copy.getSelectedFile().getAbsolutePath().toString());
        }
    } else {

    }
} 

您可以使用流收集和加入文件:

Arrays.stream(files)
        .map(File::getAbsolutePath)
        .collect(Collectors.joining("\n"));

這將通過換行符連接路徑。 您可以根據需要更改定界符。 在這種情況下,不需要if(files.length>=2)

如果無法使用Java 8,則可以創建一個創建完整字符串的方法:

private String getPaths(File[] files) {
    if (files == null || files.length == 0) {
        return "";
    }
    StringBuilder paths = new StringBuilder();
    paths.append(files[0].getAbsolutePath());
    for (int i = 1; i < files.length; i++) {
        paths.append('\n');
        paths.append(files[i].getAbsolutePath());
    }
    return paths.toString();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM