Hey,
nachdem ich schon Stunden damit gearbeitet habe, ist mir pltözlich aufgefallen, dass ich die Methode getComponentCount() eines JFrame völlig falsch verstehe.
Ich dachte, das liefert die Anzahl der Komponenten, die dem Frame geaddet wurden, was aber nicht der Fall ist. Es liefert bei mir immer "1" zurück.
In der Beschreibung der Methode steht etwas von Container. Was ist der Unterschied zwischen einem Container und Komponenten?
Dann muss ich die Frage stellen, wie die Grösse eines Containers definiert ist? Nach der Grösse der grössten Komponente in diesem Container?
Oder falls nicht, anders gefragt: Wie bekomme ich die Grösse der grössten Komponente in einem Frame?
Interessant könnte das zB sein wenn ich will, dass sich die Klasse die dem Frame Komponenten addet, sich um ihre Anordnung nicht kümmern muss:
Um Verwirrung zu vermeiden: Wenn ich als Nichtswissender von Komponente rede, meine ich eben so Dinge wie ein JPanel, ein JLabel, ein JButton etc. Dinge halt, die ich per add() dem Frame hinzufüge.
Kann mir das einer genauer erklären mit Container und Components usw?
nachdem ich schon Stunden damit gearbeitet habe, ist mir pltözlich aufgefallen, dass ich die Methode getComponentCount() eines JFrame völlig falsch verstehe.
Ich dachte, das liefert die Anzahl der Komponenten, die dem Frame geaddet wurden, was aber nicht der Fall ist. Es liefert bei mir immer "1" zurück.
In der Beschreibung der Methode steht etwas von Container. Was ist der Unterschied zwischen einem Container und Komponenten?
Dann muss ich die Frage stellen, wie die Grösse eines Containers definiert ist? Nach der Grösse der grössten Komponente in diesem Container?
Oder falls nicht, anders gefragt: Wie bekomme ich die Grösse der grössten Komponente in einem Frame?
Interessant könnte das zB sein wenn ich will, dass sich die Klasse die dem Frame Komponenten addet, sich um ihre Anordnung nicht kümmern muss:
Code:
public class AddendeClass{
Myframe.add(new JPanel());
Myframe.add(new JScrollPane());
}
public class Myframe extends JFrame{
//...
setLayout(new BorderLayout());
@Override
public Component add(Component c) {
switch (getComponentCount()) { // nur dass diese Methode eben immer 1 returned...
case 1:
super.add(c, BorderLayout.NORTH);
break;
case 2:
super.add(c, BorderLayout.CENTER);
break;
case 3:
super.add(c, BorderLayout.SOUTH);
break;
}
pack();
return c;
}
}
Um Verwirrung zu vermeiden: Wenn ich als Nichtswissender von Komponente rede, meine ich eben so Dinge wie ein JPanel, ein JLabel, ein JButton etc. Dinge halt, die ich per add() dem Frame hinzufüge.
Kann mir das einer genauer erklären mit Container und Components usw?