Mein Code ist ein einfacher Dateiersteller und -manager. Die Hauptmethode, mit der ich alle Dateien organisiere, befindet sich in einer Verzeichnistextdatei. Ich importiere es in ein Array, damit das Programm darauf zugreifen kann. Meine Löschen-Schaltfläche entfernt die Zeichenfolge nicht aus der ArrayList. Wie kann ich das beheben?Warum entfernt mein Programm keine Zeichenfolge aus der ArrayList
//This part initialises the code and imports the array
private void startActionPerformed(java.awt.event.ActionEvent evt) {
ArrayList<String> directory = new ArrayList();
String content1;
try {
content1 = new String(Files.readAllBytes(Paths.get("directory.txt")));
output.setText(content1);
directory.add(content1);
refresh();
} catch (IOException ex) {
Logger.getLogger(filemanagerUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
//This allows me to refresh the output text area
private void refresh() {
String content = "";
for (int i = 0; i < directory.size(); i++) {
content = content + directory.get(i) + "\n";
}
try {
Files.write(Paths.get("directory.txt"), directory);
} catch (IOException ex) {
Logger.getLogger(filemanagerUI.class.getName()).log(Level.SEVERE, null, ex);
}
output.setText(content);
System.out.println(directory);
}
//This deletes the file from the directory and the actual file
private void deleteActionPerformed(java.awt.event.ActionEvent evt) {
directory.remove(input.getText());
String fileDelete = input.getText();
directory.remove(input.getText());
Path deletefile = (Paths.get(fileDelete + ".txt"));
try {
Files.delete(deletefile);
} catch (IOException ex) {
Logger.getLogger(filemanagerUI.class.getName()).log(Level.SEVERE, null, ex);
}
try {
Files.write(Paths.get("directory.txt"), directory);
} catch (IOException ex) {
Logger.getLogger(filemanagerUI.class.getName()).log(Level.SEVERE, null, ex);
}
refresh();
}
Sie definierten 'ArrayList Verzeichnis = neue ArrayList();' im Bereich der Methode 'startActionPerformed'. Als Ergebnis wird nur diese lokale 'ArrayList' Werte enthalten, aber da diese niemals in das Feld 'Verzeichnis', das irgendwo dort definiert ist, eingetragen werden, wird Ihr Diktat immer auf nichts arbeiten. –
SomeJavaGuy
Ich dachte das Gleiche. Sind Sie sicher, dass Sie kein Problem mit dem Oszilloskop haben? – Coop
Die 'ArrayList directory = new ArrayList();' kommt vor 'startActionPreformed'. Ich habe es hier falsch kopiert. –