select all added
This commit is contained in:
parent
6cd9c0698b
commit
66a747dc22
Binary file not shown.
|
|
@ -26,13 +26,16 @@ public class FileMergerApp extends JFrame {
|
|||
textArea.setEditable(false);
|
||||
|
||||
JButton selectButton = new JButton("Select");
|
||||
JButton selectAllButton = new JButton("SelectAll");
|
||||
JButton mergeButton = new JButton("Merge");
|
||||
|
||||
selectButton.addActionListener(e -> selectFiles());
|
||||
selectAllButton.addActionListener(e -> selectAllFiles());
|
||||
mergeButton.addActionListener(e -> mergeFiles());
|
||||
|
||||
JPanel buttonPanel = new JPanel();
|
||||
buttonPanel.add(selectButton);
|
||||
buttonPanel.add(selectAllButton);
|
||||
buttonPanel.add(mergeButton);
|
||||
|
||||
add(buttonPanel, BorderLayout.NORTH);
|
||||
|
|
@ -68,6 +71,57 @@ public class FileMergerApp extends JFrame {
|
|||
}
|
||||
}
|
||||
|
||||
private void selectAllFiles() {
|
||||
JFileChooser chooser = new JFileChooser();
|
||||
|
||||
if (lastDirectory != null) {
|
||||
chooser.setCurrentDirectory(lastDirectory);
|
||||
}
|
||||
|
||||
chooser.setMultiSelectionEnabled(false);
|
||||
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
|
||||
|
||||
int result = chooser.showOpenDialog(this);
|
||||
if (result != JFileChooser.APPROVE_OPTION) {
|
||||
return;
|
||||
}
|
||||
|
||||
File selectedDir = chooser.getSelectedFile();
|
||||
if (selectedDir == null || !selectedDir.isDirectory()) {
|
||||
return;
|
||||
}
|
||||
|
||||
lastDirectory = selectedDir;
|
||||
|
||||
List<File> files = new ArrayList<>();
|
||||
collectFilesRecursively(selectedDir, files);
|
||||
|
||||
if (files.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (File file : files) {
|
||||
selectedFiles.add(file);
|
||||
textArea.append(file.getAbsolutePath());
|
||||
textArea.append(System.lineSeparator());
|
||||
}
|
||||
}
|
||||
|
||||
private void collectFilesRecursively(File dir, List<File> result) {
|
||||
File[] entries = dir.listFiles();
|
||||
if (entries == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (File entry : entries) {
|
||||
if (entry.isDirectory()) {
|
||||
collectFilesRecursively(entry, result);
|
||||
} else {
|
||||
result.add(entry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void mergeFiles() {
|
||||
if (selectedFiles.isEmpty()) {
|
||||
JOptionPane.showMessageDialog(
|
||||
|
|
|
|||
Loading…
Reference in New Issue