Panel in geerbter JFrame Klasse adden

medd

Mitglied
Schönen guten Abend,

hatte mir um ein wenig Arbeit zu sparen eine JFrame Template Klasse gebastelt, die von JFrame erbt und einige häufig genutzte Einstellungen setzt, die man über den Konstruktor einstellen kann. Das funktioniert soweit auch ganz gut, aber nun möchte ich für ein Projekt den Frame setzen und erstelle dafür eine Klasse, die wiederum von der Template Klasse erbt. Jetzt scheitere ich daran ein simples Panel zu adden, weil mir irgendwie nicht klar ist, wohin. Hätte ich ein JFrame in der Klasse deklariert, würde ich natürlich auf die Instanz adden, aber da die Klasse von JFrame erbt, ist sie ja jetzt ein JFrame. In dem Fall würde ich das einfach über add() ohne was davor regeln, aber das haut nicht, weil ja noch das Template dazwischen hängt. Bin ich gerade betriebsblind, oder ist das so wie ich das vorhabe eh blöd, so dass ich einfach ein JFrame instanzieren sollte?

Für Anregungen dankbar und mit vielen Grüßen
medd
 
Du könntest mit dem FactoryPattern arbeiten.

Also du erstellst eine Klasse namens JFrameFactory, mit einer statischen Methode vom Typ JFrame, die dir ein JFrame mit den gewünschten Optionen zurückgibt.
So würdest du um dein Problem herumprogrammieren.

Aber eigentlich müsste this.getContentPane().add(JCOMPONENT) funktionieren.
 
Klappt beides, danke! auf getContentPane hätte ich ja auch kommen können 🙄 Factory pattern klingt interessant. Sollte man sich das früh angewöhnen, oder spricht auch was dagegen das flächendeckend für Template Klassen zu nutzen?
 
Du solltest dir nur früh im Klaren darüber sein, wofür du Factorys brauchst. Änderungen würden nämlich alle darauf zugreifenden Klassen betreffen. Ansonsten sehe ich nichts, was dagegen spräche.
 
Im Grunde genommen genügt einfach
add( myPanel );
da deine "Template"-Klasse von JFrame erbt, ist sie ein JFrame, und kennt .add ganz normal.
 

Neue Themen


Zurück
Oben