Assoziationen und Hat-Beziehung

Extremefall

Bekanntes Mitglied
Hallo,
wie kann man Assoziationen und Hat-Beziehungen anhand der API erkennen? Habt ihr dazu gute Tutorials etc.? Kann man z.B. ein JFrame einem JLabel zuweisen? Wie erkennt man das in der API von JAVA?
 
M

Marcinek

Gast
Dazu muss man nur wissen, dass ein JFrame ein Container für Componenten ist.

Alles, was von Component erbt kann in JFrame geadded werden.

Gruß,

Marcinek
 

Extremefall

Bekanntes Mitglied
Das würde aber auf den Fall zutreffen, dass eine Komponente dem JFrame hinzugefügt wird. Kann das JFrame denn einem JLabel übergeben werden?
 

eRaaaa

Top Contributor
Schau dir in der API Doc zu der Klasse die Hierarchie an:

Code:
java.lang.Object
  java.awt.Component
      java.awt.Container
          java.awt.Window
              java.awt.Frame
                  javax.swing.JFrame
ein JFrame ist also ein Container, ein Container wiederum ist eine Component.
Deswegen könntest du auch schreiben
Java:
Component c = new JFrame();
Wenn du dir jetzt die add-Methode(wenn du die überhaupt meinst mit "übergeben") anschaust
Container (Java Platform SE 6)
Code:
public Component add(Component comp)
nimmt sie also jegliche Art von Component an.
Der Compiler lässt es zu, ob es dann auch wirklich Sinn ergibt / erlaubt ist und keine IllegalArgumentException o.ä. geworfen wird, steht meist dann auch bei, z.B. hier eben bei
addImpl -> IllegalArgumentException - if adding a window to a container
Den Verweis zu addImpl findest du in add...
so wäre jetzt also z.B. ein Weg gewesen deine Frage zu beantworten :)

Oft hilft es auch einfach mal etwas weiter runter zu scrollen und sich "Methods inherited from" z.B. anzuschauen :)
 

Neue Themen


Oben