Timer-Thread in Swing öffnet jedes Mal ein neues Fenster

mysticado

Aktives Mitglied
Hallo Leute,
ich habe mir eine Swing-GUI zusammengebaut, welche mein Netz durchscannt und alle vorhandenen Rechner und die drauf laufenden Virtuellen Maschinen als JTree anzeigt.
Ausserdem habe ich einen Timer am Laufen, welcher alle 30 Sekunden das Netz wiedermals durchscannt und eventuelle Veränderungen im Jtree abändert und diesen dann wieder neu aufbaut. Komischerweise wird meine GUI nach jedem Timer-Ablauf wieder komplett als neues Fenster geöffnet (d.h. nach dem ersten Durchlauf habe ich 2 GUI-Fenster, nach dem zweiten Durchlauf 3, usw.).
Entferne ich das zweite Scannen meines Netzes (Zeile 21) und lasse nur den Jtree neu zeichnen (obwohl so natürlich keine Veränderungen vorgenommen wurden) bleibt es bei einem Fenster welches einfach neu geladen wird. Wie kommt's bitte dazu?!
Hier mein Code:

Java:
public class WebserverUtilizer extends javax.swing.JFrame implements
        SimulationListener {
    // Variables declaration
    List<NetzStruktur> networkEntities = new ArrayList<Netzstruktur>();

public static void main(String args[]) {
// Einlesen der Struktur des Netzes
networkEntities.add("Rechner");
networkEntities.add("VMs");

new WebserverUtilizer();
}

public WebserverUtilizer(){
// new JFrame(), usw.
createJTreeFromNetworkEntities();
setVisible(true);

  ActionListener action = new ActionListener(){
            public void actionPerformed(ActionEvent arg0) {
                    refreshTree(); // hier wird das Netz neu eingelesen und kann dann
                                        // im JTree upgedated werden (hier drunter!)
                 root.removeAllChildren();
                 for (int h=0; h<networkEntities.size();h++) {
                     NetworkEntity networkEntity = networkEntities.get(h);
                     DefaultMutableTreeNode entityNode = new DefaultMutableTreeNode(networkEntity);
                     model.insertNodeInto(entityNode, root, root.getChildCount()); //hier werden Rechner als Knoten in den JTree eingefügt
                     for (VirtualMachine vm : networkEntity.getVirtualMachines()) {
                         
                         if (vm.getHostIP().equals(networkEntity.getIP())) {
                             model.insertNodeInto(new DefaultMutableTreeNode(vm), entityNode, entityNode.getChildCount()); // hier werden VMs an die Rechner-Nodes im JTree eingefügt.
                         }
                     }
                 }
                 model.reload();
                 expandAll(tree); 
            }
        };
        new Timer( 5000, action).start();

}
}
 

mysticado

Aktives Mitglied
Hmm, das ist ganz komisch, ich habe alle Befehle (ausser einem System.out) aus der refreshTree() entfernt und trotzdem öffnet es mir immer wieder ein neues Fenster. Von "new WebserverUtilizer()" kann also nicht die Rede sein.
Ich versteh das net!!! :(
 
S

SlaterB

Gast
aber du willst refreshTree-Methode nicht posten?

eine andere Möglichkeit ist noch
new Error("neu").printStackTrace();
im Konstruktor von WebserverUtilizer,
kommt die Fehlermeldung alle 30 sec mit dem jeweiligen neuen Fenster?

poste diesen StackTrace bzw. schaue dir genau an, wer denn da der Aufrufer des Konstruktors ist
 

jgh

Top Contributor
was natürlich auch auf schlechtes/falsches Design hindeutet sind die folgende Codezeilen:

[java=14]public WebserverUtilizer(){
// new JFrame(), usw.[/code]
[java=1]public class WebserverUtilizer extends javax.swing.JFrame [/code]

auch wenn es auskommentiert ist...
 

mysticado

Aktives Mitglied
[java=14]public WebserverUtilizer(){
// new JFrame(), usw.[/code]

Das war nur der Konstruktor! Nochmal genauer hinschauen ;)

Aber um zu meinem Problem zurückzukommen - ich hätte die refreshTree()-Methode auch hier reingepostet, aber komischerweise habe ich das Problem korrigieren können, indem ich statt die Methode aus dem Timer aufzurufen, einfach den ganzen Inhalt der Methode in den Timer kopiert habe. Und siehe da, nun öffnen sich keine weiteren Fenster!
Ich werde diesen Beitrag als "Erledigt" markieren, wobei ich natürlich gerne wissen würde wieso es so denn nun funktioniert, allein verständnishalber!
Also danke nochmals an alle für die tolle Hilfe und falls ihr ne Idee habt wieso es denn jetzt so funktioniert, immer her mit den Infos! ;)
Gruß!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Timer oder Thread programmieren ? Java Basics - Anfänger-Themen 10
O Laufender Timer+Action Listener in Thread VS isAlive() Java Basics - Anfänger-Themen 4
M Timer / Thread Java Basics - Anfänger-Themen 43
M Timer unterbrechen? Wo ist mein Thread? Java Basics - Anfänger-Themen 2
B Timer / Thread warten Java Basics - Anfänger-Themen 3
M Timer als Thread laufen lassen? Java Basics - Anfänger-Themen 4
MegaWatt Wie Applet mit Timer updaten, warum 2. Thread ? Java Basics - Anfänger-Themen 5
S Timer vs ExecutorService: jeden Sonntag um 14.00 Uhr einen Task starten..? Java Basics - Anfänger-Themen 1
_user_q Timer - ScheduledExecutorService wird schon vorher beendet Java Basics - Anfänger-Themen 5
E multiple Timer die sich nicht summieren Java Basics - Anfänger-Themen 12
Jan_x8 Timer/Scanner Java Basics - Anfänger-Themen 5
C Timer aktualisieren Java Basics - Anfänger-Themen 5
L GUI- wie cancel ich einen Timer? Java Basics - Anfänger-Themen 10
missy72 Timer oder Timeline Java Basics - Anfänger-Themen 3
R Timer Format: 00:00:00 Java Basics - Anfänger-Themen 29
C java.util Timer läuft zu langsam? Java Basics - Anfänger-Themen 1
D Änder der Timer Speeds Java Basics - Anfänger-Themen 1
E Timer trotz erwartender Eingabe durchlaufen lassen Java Basics - Anfänger-Themen 11
L Methoden Timer Java Basics - Anfänger-Themen 9
J Memory-Spiel Aktivierung der Methode mit Timer Java Basics - Anfänger-Themen 44
G Animation Timer Nano Time Java Basics - Anfänger-Themen 2
S Timer reseten Java Basics - Anfänger-Themen 3
T Timer stoppt zu früh Java Basics - Anfänger-Themen 7
CptK Methoden Timer & Mathematischer Denkfehler Java Basics - Anfänger-Themen 7
mobaer Swing Timer stoppen Java Basics - Anfänger-Themen 3
C Wie erstellt man einen Timer/Delay? Java Basics - Anfänger-Themen 1
J Timer bauen, Main Methode immer wieder neu starten Java Basics - Anfänger-Themen 13
D Timer programmieren Java Basics - Anfänger-Themen 13
N Timer funktioniert nicht beim starten Java Basics - Anfänger-Themen 3
B Timer mehrere Male ausführen Java Basics - Anfänger-Themen 4
J Timer richtig pausieren Java Basics - Anfänger-Themen 2
E Timer erstellen Java Basics - Anfänger-Themen 2
B javax.ejb.Timer wieder starten? Java Basics - Anfänger-Themen 0
S actionlistener timer Java Basics - Anfänger-Themen 9
C Wie kann ich jetzt von der Game.java auf die Timer.java zugreifen? Java Basics - Anfänger-Themen 6
S timer mit imagedatei Java Basics - Anfänger-Themen 5
S timer Java Basics - Anfänger-Themen 0
V Java Uitil Timer Stoppt nicht Java Basics - Anfänger-Themen 2
KaffeeFan Timer beenden Java Basics - Anfänger-Themen 12
K Ampelsteuerung mit Timer Java Basics - Anfänger-Themen 8
F Array und Timer Java Basics - Anfänger-Themen 2
G Timer einsetzen Java Basics - Anfänger-Themen 2
F Timer beendet nicht immer Java Basics - Anfänger-Themen 2
F Timer abbrechen und wieder starten Java Basics - Anfänger-Themen 5
U Java Swing Timer mit ButtonKlick starten u. nach 12 Sekunden Befehl ausführen Java Basics - Anfänger-Themen 7
W Erste Schritte Timer soll jede Sekunde Label aktualisieren Java Basics - Anfänger-Themen 5
T Timer - HILFE Java Basics - Anfänger-Themen 10
O Alternative zum swing-Timer Java Basics - Anfänger-Themen 5
A Wieso funktioniert dieser Timer nicht?? Java Basics - Anfänger-Themen 3
S timer funktion mit javax panel Java Basics - Anfänger-Themen 3
O Starte Timer, während anderer Timer noch läuft. Ruft dies Schwierigkeiten hervor? Java Basics - Anfänger-Themen 0
M Schneller Timer Java Basics - Anfänger-Themen 2
C Timer aus anderer Klasse stoppen/starten Java Basics - Anfänger-Themen 3
B Timer beenden? Java Basics - Anfänger-Themen 0
G Erste Schritte Timer: In einem festgelegten Intervall eine Methode ausführen Java Basics - Anfänger-Themen 6
O Delayed Timer erstellen Java Basics - Anfänger-Themen 3
M Javax.swing - Timer(2 Button) Java Basics - Anfänger-Themen 17
J Timer - Swing Java Basics - Anfänger-Themen 5
A Timer: textarea.getText() mit Variable vergleichen Java Basics - Anfänger-Themen 3
D Problem mit Methode und Timer Java Basics - Anfänger-Themen 35
T Wie mache ich einen Timer der alle 2 sekunden aufgerufen wird? Java Basics - Anfänger-Themen 5
R Einfacher Timer geht nicht Java Basics - Anfänger-Themen 7
J Swing Timer Java Basics - Anfänger-Themen 3
M Einfacher Timer ;) Java Basics - Anfänger-Themen 15
M Timer für Termial-Eingaben Java Basics - Anfänger-Themen 3
C Methoden Einen Timer einbauen, aber wie? Java Basics - Anfänger-Themen 5
B Timer Java Basics - Anfänger-Themen 25
S Timer / Schleifen Verständnis Problem Java Basics - Anfänger-Themen 3
S Erste Schritte Java Timer Java Basics - Anfänger-Themen 13
E Threads Timer Java Basics - Anfänger-Themen 6
Spin KI Anfänger Frage : Timer Problem Java Basics - Anfänger-Themen 6
F Prüfen ob timer läuft Java Basics - Anfänger-Themen 6
L Erste Schritte Timer und Zugriffsattribute Java Basics - Anfänger-Themen 5
M Audio + Timer Java Basics - Anfänger-Themen 12
M Methoden Timer in ActionListener aufrufen Java Basics - Anfänger-Themen 2
R Klassen MemorySpiel: brauche Timer Java Basics - Anfänger-Themen 3
D Timer in Applet Java Basics - Anfänger-Themen 2
ruerob Warum ist Timer schneller als While? Java Basics - Anfänger-Themen 9
F Java Timer Frage Java Basics - Anfänger-Themen 14
VfL_Freak Verständnisfrage zur Klasse "TIMER" Java Basics - Anfänger-Themen 7
B Timer Java Basics - Anfänger-Themen 2
S timer task problem Java Basics - Anfänger-Themen 2
C Überprüfen, ob Timer läuft Java Basics - Anfänger-Themen 3
S "Kleines" Problem mit dem Timer Java Basics - Anfänger-Themen 4
Luk10 Problem mit vielen Timer(-Events) Java Basics - Anfänger-Themen 17
Luk10 Swing timer und Threads Java Basics - Anfänger-Themen 4
W Timer erstellen Java Basics - Anfänger-Themen 2
M Timer: period während Verlauf wechseln Java Basics - Anfänger-Themen 12
L Timer innerhalb eines Threads Java Basics - Anfänger-Themen 3
P Java Timer Java Basics - Anfänger-Themen 2
C countdown/timer/Zeit warten lassen Java Basics - Anfänger-Themen 14
B problem mit timer/timertask, Farbverlauf Java Basics - Anfänger-Themen 10
Piwi Timer bei Programmende beenden Java Basics - Anfänger-Themen 25
T zweiter Timer überschreibt den ersten Timer ? Java Basics - Anfänger-Themen 5
kulturfenster Problem mit javax.swing.Timer Java Basics - Anfänger-Themen 2
C Regelmäßigen Timer bei Zeitüberschreitung nacheinander abarbeiten Java Basics - Anfänger-Themen 2
J timer Java Basics - Anfänger-Themen 2
J timer Java Basics - Anfänger-Themen 2
H Timer Java Basics - Anfänger-Themen 3
dl85hej Zeitsitschleife anstatt Timer Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben