Swing Java Objekte

cybren

Mitglied
Tag,
ich habe eine Klasse in der ein Thread ist und möchte diesen in einer Methode in einer anderen Klasse aufrufen. hier der Code des Threads:
Java:
public class Block extends Rectangle implements Runnable {
public Thread thread = new Thread (this);
public Block(Frame frame){
	thread.start();
}
run(){
System.out.println("Hallo");
}
}
das Frame frame ist nur damit er es als Konstruktor der Klasse Frame annimmt.
wll ich dann in der anderen Klasse aufrufen mit:
Java:
 Block block = new Block(this); f1.add(block);
f1 ist ein JFrame dann sagt er das block kein Objekt ist und das somit nicht geht.

wie schaffe ich es daraus ein Objekt zu machen bzw. wie würdet ihr es machen damit es eleganter oder so ist?

danke schon mal im Vorraus !
MFG cybren
 
Moin,

oha .... :shock:
Wir müssen da erstmal Klarheit reinbringen .... 😱

ich habe eine Klasse in der ein Thread ist und möchte diesen in einer Methode in einer anderen Klasse aufrufen. hier der Code des Threads:
Java:
public class Block extends Rectangle implements Runnable 
{
    public Thread thread = new Thread (this);
    public Block(Frame frame)
    {
	thread.start();
    }
    run()
    {
        System.out.println("Hallo");
    }
}
Wieso leitest Du von Rectangle ab ???:L
Wieso HIER den Thread deklarieren, wenn Du ihn woanders benötigst ???:L

das Frame frame ist nur damit er es als Konstruktor der Klasse Frame annimmt.
😱 ???:L
Es ist ein Konstruktor der Klasse Block und mitnichten von Frame !!
Du übergibst hier nur einen Frame .....

will ich dann in der anderen Klasse aufrufen mit:
Java:
Block block = new Block(this); 
f1.add(block);
f1 ist ein JFrame dann sagt er das block kein Objekt ist und das somit nicht geht.
Sicher, dass das Instantiieren klappt?
Welcher Kontext gehört denn zu this ???:L

Irgendwie mutet das alles seeeehr seltsam!
Erstelle den Thread dort, wo Du ihn brauchst!

Gruß
Klaus
 
Zuletzt bearbeitet:
also ich leite rectangle ab weil ich das aus meinem Code habe und es da benötige habe es vergessen zu entfernen sry 🙁

ich mache den Thread in der klasse Block weil ich ihn da benötige da er später ein paar der variablen brauche.

this ist einfach nur Frame der übergeben wird

und ja das instanzieren klappt
 
Zuletzt bearbeitet:
ich mache den Thread in der klasse Block weil ich ihn da benötige da er später ein paar der variablen brauche.

Wenn du die Klasse Block als anzuzeigendes Element verwenden willst, ist hier die Verwendung von Thread falsch!

Mache eine "Worker"klasse, welche Runnable implementiert, welche die gewünschte Arbeit verrichtet.
Auf die Variablen kannst du immer noch per setter/getter zugreifen!
 
ok ich dachte halt es würde auch noch irgendwie anders gehen.

aber wie mache ich daraus ein objekt was man zu dem JFrame hinzufügen kann!
 

Zurück
Oben