Hallo ihr lieben...
ich habe eine frage zu Threads... und zwar wird ein Thread aufgerufen um aufgaben paralell auszuführen. solange der thread läuft soll beim programm wenn man auf das rote kreuz in der ecke drückt eine meldung kommen ("wird noch verschoben... sicher?!")
aber irgendwie scheint der thread immer zu laufen, denn wenn ich sage
läuft das die GAAAAAAAAAAAAAANZE Zeit.
Hier der thread:
Nicht wundern es ist sehr verwirrend... bitte keine kritik diesbezüglich xD
beendet der sich nun selbst oder wie muss ich das machen?
LG. Greg
ich habe eine frage zu Threads... und zwar wird ein Thread aufgerufen um aufgaben paralell auszuführen. solange der thread läuft soll beim programm wenn man auf das rote kreuz in der ecke drückt eine meldung kommen ("wird noch verschoben... sicher?!")
aber irgendwie scheint der thread immer zu laufen, denn wenn ich sage
Java:
while(thread.alive){
syso("test") //Nur zum Testen
}
läuft das die GAAAAAAAAAAAAAANZE Zeit.
Hier der thread:
Java:
public class OrdnerVerschieben extends Thread {
public void run() {
String stringfile1 = Bearbeiten.j1filechooser.getSelectedFile().toString().replaceAll("\\\\", "//");
File file1 = new File(stringfile1);
String[] part = file1.toString().split("\\\\");
String stringfile2 = Bearbeiten.j2filechooser.getSelectedFile().toString().replaceAll("\\\\", "//") + "//"
+ part[part.length - 1];
File zielpfad = new File(stringfile2);
zielpfad.mkdir();
JOptionPane.showMessageDialog(null,
part[part.length - 1].toString() + " wird nach\n " + zielpfad.toString() + "\n verschoben...",
"wird verschoben...", JOptionPane.INFORMATION_MESSAGE);
File[] überOrdnerArray = file1.listFiles();
for (int i = 0; i < überOrdnerArray.length; i++) {
String[] test = überOrdnerArray[i].toString().split("\\\\");
String m = test[test.length - 1];
String ende = zielpfad + "//" + m;
File finale = new File(ende);
String unterOrdnerStringAlt = file1 + "//" + m;
File unterOrdnerFileAlt = new File(unterOrdnerStringAlt);
File[] unterOrdnerArray = unterOrdnerFileAlt.listFiles();
String[] kürzel = unterOrdnerFileAlt.toString().split("\\\\");
String unterOrdnerNameAlt = kürzel[kürzel.length - 1];
try {
for (int j = 0; j < unterOrdnerArray.length; j++) {
String[] unterOrdnerNamenArray = unterOrdnerArray[j].toString().split("\\\\");
String unterOrdnerName = unterOrdnerNamenArray[unterOrdnerNamenArray.length - 1];
String unterOrdnerString = unterOrdnerFileAlt + "//" + unterOrdnerName;
File unterOrdnerFile = new File(unterOrdnerString);
String zielfpfadString = zielpfad.toString() + "//" + unterOrdnerNameAlt;
File zielpfadFile = new File(zielfpfadString);
zielpfadFile.mkdir();
String fertigerZielpfadString = zielpfadFile + "//" + unterOrdnerName;
File fertigerZielpfad = new File(fertigerZielpfadString);
unterOrdnerFile.renameTo(fertigerZielpfad);
unterOrdnerFileAlt.delete();
file1.delete();
}
} catch (NullPointerException e) {
System.out.println("");
}
System.out.println(überOrdnerArray[i].renameTo(finale));
}
OrdnerVerschieben.interrupted();
}
}
Nicht wundern es ist sehr verwirrend... bitte keine kritik diesbezüglich xD
beendet der sich nun selbst oder wie muss ich das machen?
LG. Greg