gpt4 book ai didi

java - 如何通过 JFileChooser 将所有选定的文件绝对路径/名称设置为 JTextField

转载 作者:行者123 更新时间:2023-12-02 02:48:13 24 4
gpt4 key购买 nike

我有一个带有 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();
}

关于java - 如何通过 JFileChooser 将所有选定的文件绝对路径/名称设置为 JTextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44242818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com