Steffilove
Grünschnabel
meine gui braucht sehr lange zum öffnen aufgrund eines verzeichnisbaums....
damit dieses zeit überbrückt wird, wird eine JProgressBar angezeigt.
mein Problem liegt jetzt dort dass, ich die JProgressBar mit der gui verbinden muss...
ich will jedes mal wenn ein neuer pfad des verzeichnisbaums aufgebaut wird ein signal zum thread (in methode run() ) geschickt welches den Fortschritt des Balkens nach vorn schiebt...
aber wie schick ich das signal zum thread...
das ist der quellcode vom baum:
wie müsste dann dieser befehl aussehen und vorallem was schreibe ich in run()?
p.s. kenn mich mit senden noch gar nicht aus... bitte einfache antworten...
LG
damit dieses zeit überbrückt wird, wird eine JProgressBar angezeigt.
mein Problem liegt jetzt dort dass, ich die JProgressBar mit der gui verbinden muss...
ich will jedes mal wenn ein neuer pfad des verzeichnisbaums aufgebaut wird ein signal zum thread (in methode run() ) geschickt welches den Fortschritt des Balkens nach vorn schiebt...
aber wie schick ich das signal zum thread...
das ist der quellcode vom baum:
Java:
public JPanel links() {
// erzeugen eines Panels
JPanel west = new JPanel();
west.setPreferredSize(new Dimension(300, 400));
// ein JTree
DefaultMutableTreeNode wurzel = new DefaultMutableTreeNode("NamePC");
// eine For Schleife die so oft es Wurzelverzeichnisse gibt durchläuft
for (File root : File.listRoots()) {
// node sind jeweils die Knoten(Wurzelverzeichnisse), root.getPath
// ist der Pfad des Knotens
DefaultMutableTreeNode node = new DefaultMutableTreeNode(root
.getPath());
knoten.put(root.toString(), root.toString());
// Abfrage ob die Knoten wirklich in der map sind
if (knoten.containsKey(root.getPath())) {
System.out.println("hat funktioniert"
+ knoten.get(root.getPath()).toString());
Hier will ich den Sendebefehl einfügen(signal zum Thread)
}
// Die jeweilige Wurzel wird hinzugefügt
wurzel.add(node);
// Aufruf der Methode die die Verzeichnisse ermittelt
PCverzeichnis verzeichnis = new PCverzeichnis();
verzeichnis.weitereVerzeichnisse(node, root);
}
// ein baum der mit der wurzel beginnt
JTree tree = new JTree(wurzel);
tree.setPreferredSize(new Dimension(250, 100000));
// wird dem Fenster hinzugefügt
west.add(new JScrollPane(tree));
// selection listener kann merken wenn die maus auf einen node klickt
tree.getSelectionModel().addTreeSelectionListener(
new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
path = e.getNewLeadSelectionPath();
// Der Liste die die angeklickten Knoten sammelt
// hinzufügen
pathList.add(path);
// pathTree ist das letzte Element im TreePath also der
// name
// und der Value in der Knoten map
pathTree = path.getLastPathComponent()
.toString();
System.out.println(pathTree);
textFeld.append(pathTree + "\n");
list1.add(pathTree);
PCverzeichnis pc = new PCverzeichnis();
String derPfadAusDemPath = pc.pfadKonstruieren(path);
// hier wird ein Entry Objekt der Map erstellt
for (Map.Entry<String, String> entryObjekt : knoten
.entrySet()) {
// wurzelSchlüssel ist die Wurzel ermittelt aus dem
// Schlüssel
// der map
String wurzelSchlüssel = entryObjekt.getKey()
.subSequence(
0,
path.getPathComponent(1).toString()
.length()).toString();
// wenn die Liste (das was im Textfeld steht) einen
// Value aus dem
// Entry Objekt enthält und wenn die Wurzeln
// übereinstimmen
// ,dann soll der Value und der Key ausgegeben
// werden
if (list1.contains(entryObjekt.getValue())) {
if (derPfadAusDemPath.equals(entryObjekt
.getKey())) {
// if(path.getPathComponent(1).toString().equals(wurzelSchlüssel)){
if (entryObjekt.getKey().equals(pathTree)) {
System.out
.println("es wurde eine wurzel angeklickt");
knotenAuswahl.add(pathTree);
} else {
System.out.println("value "
+ knoten.get(entryObjekt
.getKey())
+ " und key "
+ entryObjekt.getKey());
// System.out.println("die wurzel aus
// dem key ermittelt:
// "+wurzelSchlüssel);
}
}
}
}
}
});
return west;
}
wie müsste dann dieser befehl aussehen und vorallem was schreibe ich in run()?
p.s. kenn mich mit senden noch gar nicht aus... bitte einfache antworten...
LG