Guten Morgen zusammen,
ich steh bei dieser Geschichte etwas auf dem Schlauch und brauche eure Hilfe.
Ich habe vor, Daten jede Sekunde aus einer Datenbank zu lesen und mit JFreechart zu visualisieren.
Ich denke, dass sollte in einem Thread passieren und deswegen habe ich das Experimentieren angefangen.
Mein Problem ist, dass ich es absolut nicht hinbekomme, die While-Schleife oder den Thread mittels Start/Stop-Button anzustoßen bzw anzuhalten. Das muss sein, da man später in dem Chart auch hin und her springen muss, z.B. um sich die Daten von vor einer Stunde anzuschauen.
Hier mal mein kläglicher Versuch.
Mittlerweile befindet sich der Threadstart in einer Funktion, weil ich mir dachte, dass man die einfacher ansprechen kann. Start des Threads und damit der Schleife ist natürlich so kein Problem. Allerdings das Stoppen gelingt mir absolut nicht. Die Schleife verhält sich absolut merkwürdig. Beim Übergeben von "1" bricht sie ab, es kommt ein System.Out.println unter der Schleife und dann springt die Ausführung sofort wieder in den Else if-Block der Schleife???
Hier der Code:
Mit diesem Code läuft in einem JFrame eine Uhr in einem Label. Darunter befinden sich zwei Buttons (Start und Stop) die die Funktion z_thread() mit 0 oder 1 aufrufen.
Die Terminalausgaben habe ich eingefügt, weil ich verstehen wollte, was da passiert.
Viele Grüße
Chris
ich steh bei dieser Geschichte etwas auf dem Schlauch und brauche eure Hilfe.
Ich habe vor, Daten jede Sekunde aus einer Datenbank zu lesen und mit JFreechart zu visualisieren.
Ich denke, dass sollte in einem Thread passieren und deswegen habe ich das Experimentieren angefangen.
Mein Problem ist, dass ich es absolut nicht hinbekomme, die While-Schleife oder den Thread mittels Start/Stop-Button anzustoßen bzw anzuhalten. Das muss sein, da man später in dem Chart auch hin und her springen muss, z.B. um sich die Daten von vor einer Stunde anzuschauen.
Hier mal mein kläglicher Versuch.
Mittlerweile befindet sich der Threadstart in einer Funktion, weil ich mir dachte, dass man die einfacher ansprechen kann. Start des Threads und damit der Schleife ist natürlich so kein Problem. Allerdings das Stoppen gelingt mir absolut nicht. Die Schleife verhält sich absolut merkwürdig. Beim Übergeben von "1" bricht sie ab, es kommt ein System.Out.println unter der Schleife und dann springt die Ausführung sofort wieder in den Else if-Block der Schleife???
Hier der Code:
Java:
public void z_thread(int run_thread)
{
System.out.println("Vor der Schleife " + run_thread);
new Thread(new Runnable(){
@Override
public void run() {
int r = run_thread;
System.out.println("Erste Abfrage vor Schleife von r " + r);
System.out.println("Zweite Abfrage von run_thread " + run_thread);
while(true){
if (r == 1)
{
System.out.println("Im IF-Block, Variable r: " + r);
break;
}
else if (r == 0)
{
System.out.println("Im ELSE-IF_Block, Variable r: " + r);
jLabel3.setText(new SimpleDateFormat("HH:mm:ss").format(new Date(System.currentTimeMillis() - 3600 * 1000)));
try{ Thread.sleep(1000); } catch(InterruptedException e){}
}
else {System.out.println("Im ELSE-Block, Variable r: " + r);}
}
System.out.println("Im RUN-Block");
}
}).start();
Die Terminalausgaben habe ich eingefügt, weil ich verstehen wollte, was da passiert.
Viele Grüße
Chris
Zuletzt bearbeitet: