Marko: Neue class, altes Frame

Beitrag lesen

Hi Lazywolf,

ich hab jetzt nochmal versucht Dein Problem zu verstehen, und Irgendwie...vielleicth hab ich ein bisschen was verstanden. Also das new Classenname ist NUR! zur Instanzierung der Klasse, das bedeutet, wenn eine Klasse (der Code) ein Bauplan für ein Auto ist, baust Du mit "new Auto" Dir ein Instanz der Klasse Auto also ein Auto halt.
In den Constructor, der dabei nämlich aufgerufen wird, packst Du nur Initialisierungscode rein, wenn Du da was brauchst.
Anderen Code packst Du in Methoden z.B. hat AUto dan neben dem Konstruktor eine function (Methode) losfahren(), wenn Du also in Deiner Hauptklasse irgendwann "MyAuto = new Auto();" aufgerufen hast, kannst Du dann MyAuto.losfahren() aufrufen, und der Code in der Methode losfahren() wird ausgeführt. Klar ?
Klassen sind dazu gut Sachen zu Speichern z.B. Variablen der Art:

class Auto{
   Farbe = blau;
   Höchstgeschwindigkeit = 160;
   aktuelle_Geschwindigkeit = 55;
   .
   .
   .

Und dann haben Klassen noch Mehtoden Die auf diesen Variablen arbeiten z.B.

function losfahren( int speed ){
  if( speed < Höchstgeschwindigkeit ){
  aktuelle_Geschwindigkeit = speed;
  }
}

}// Ende class auto

Zu Deinem Problem: Wenn Du mit dem Frame interagieren willst von einer anderen Klasse aus, muss dise Kalsse eine Referenz auf diesen Frame haben, d.h. Du musst eine Variable in Der Klasse haben, die auf den Frame verweist.
Das kannst Du so machen, dass die Klasse (z.B. MyClass) ein Attribut (eine Variable) vom Typ JFrame hat, die Zuweisung machst Du im Konstruktor:

class MyClass(){

JFrame parentframe;

MyClass( JFrame pframe  ){
     parentframe = pframe;
   }
}

Wenn die Hauptklasse z.B. die JFrame Klasse selbst ist, hast Du dort irgnedeine Variable vom Typ MyClass:

MyClass Child;

Die Wertzuweisung (die mit der Instnazierung des Object verbunden ist geht dann so:

Child = new MyClass( this );

Wobei "this" eine Referenz der Hauptklasse (also vom Typ JFrame) auf sich selbst ist. In MyClass kannst du dann auf die Hauptklasse zugreifen einfach mit pframe.irgendeineMethodeVonJFrame

Hilft Dir das weiter ? Wenn nein formulier Dein Problem anders, oder besorg Dir vielleicht ein bessseres Javabuch :-)

Gruss

Marko