Wenn Sie einzelne Komponenten eines von GridBagLayout verwalteten Layouts unsichtbar machen, ändert sich die Anordnung der übrigen Komponenten im Layout. Das GridBagLayout scheint Zellen mit unsichtbaren Komponenten zu "verfallen", wodurch andere Komponenten Positionen ändern. Das ist ein sehr nerviges Verhalten, und ich habe nach einem Weg gesucht, das davon abzuhalten.GridBagLayout: So verhindern Sie, dass unsichtbare Komponenten kollabieren
Eine Methode, die ich ausprobiert habe, ist das Hinzufügen eines Abstandshalters zur gleichen Zelle, mit einer festen Größe gleich der bevorzugten Größe der Komponente, die versteckt werden kann, aber wenn diese bevorzugte Größe jemals geändert würde, wäre es eine Menge Probleme, um den Spacer synchron zu halten. Gibt es einen besseren Weg?
Eigentlich wäre es nicht so schlimm, wenn das GridBagLayout Zellen mit unsichtbaren Komponenten wirklich vollständig ignorieren würde, aber es berücksichtigt immer noch die Zelleneinschübe, also wenn Sie ein Layout von Eingabefeldern haben und die Einfügungen sauber verwenden ordnen Sie sie mit regelmäßigen Abständen dazwischen an, dann versteckt man eine Komponente in der Mitte, entfernt sie aus dem Layout, verlässt aber die Lücke, was normalerweise bedeutet, dass die umgebenden Komponenten zusammenfließen, aber mit einer hässlichen, doppelt breiten Lücke zwischen ihnen ...
Ah gut alt Gridbaglayout mit seinen Einschränkungen, wie ich dich nicht vermisse (aber ich werde diesen Thread trotzdem folgen;) – Anders
Ich kenne das GridBagLayout seit Jahren, und manchmal kann ich auch viel Zeit damit verbringen, nach was zu suchen das Kollapsverhalten. Versuchen Sie, eine große Komponente hinzuzufügen, z. B. eine Beschriftung mit viel Text. Ändern Sie die Größe Ihres GridBagLayout-Containers auf eine Breite, die kleiner als die bevorzugte Größe des Labels ist ... Das ist so seltsam – Timmos