Hallo,
ich habe zum lernen ein kleines Programm gemacht. Über eine GUI gibt es einen Startbutton der die StratAll() und einen Stoppbutton der die stopAll() Methode aufruft.
Ich möchte in der GUI Klasse wirklich nur die Gui haben und keine unnötigen Variablen oder Objekte.
Vorweg: Es funktioniert, aber ich verstehe eine Sache nicht, die ich mal als Kommentare verfasst habe.
Ich möchte ein Globales Objekt haben, welches ich in mehreren Methoden verwenden kann.
Objekte sind nicht Klassengebunden, aber muss infoWorker static sein, weil die Methode startAll() static ist?
Wenn startAll() nicht mehr static ist, kann ich sie nicht mehr aus der Gui Klasse aufrufen, weil ich dafür ein Objekt von GetInfo erzeugen müsste, welches nicht geht wegen Privatem Konstruktor.
Kurz und gut, wie macht es es richtig (auch vom guten Stil her) oder stimmt das so?
ich habe zum lernen ein kleines Programm gemacht. Über eine GUI gibt es einen Startbutton der die StratAll() und einen Stoppbutton der die stopAll() Methode aufruft.
Ich möchte in der GUI Klasse wirklich nur die Gui haben und keine unnötigen Variablen oder Objekte.
Vorweg: Es funktioniert, aber ich verstehe eine Sache nicht, die ich mal als Kommentare verfasst habe.
Java:
public class GetInfo implements Runnable {
private static boolean onlyThread = true;
private final Thread tn;
private static GetInfo infoWorker; //warum static?
private GetInfo() {
this.tn = new Thread(this);
this.tn.start();
}
public static void startAll() {
if (onlyThread) {
infoWorker = new GetInfo();
onlyThread = false;
} else {
System.out.println("Not Only");
}
}
public static void stopAll() {
infoWorker.stopPointerInfo();
}
public void stopPointerInfo() {
tn.interrupt();
}
//run Methode etc...
Ich möchte ein Globales Objekt haben, welches ich in mehreren Methoden verwenden kann.
Objekte sind nicht Klassengebunden, aber muss infoWorker static sein, weil die Methode startAll() static ist?
Wenn startAll() nicht mehr static ist, kann ich sie nicht mehr aus der Gui Klasse aufrufen, weil ich dafür ein Objekt von GetInfo erzeugen müsste, welches nicht geht wegen Privatem Konstruktor.
Kurz und gut, wie macht es es richtig (auch vom guten Stil her) oder stimmt das so?