Unterschied zwischen setSize() und setPreferredSize() in Java
Der Unterschied zwischen setSize() und setPreferredSize() ist etwas kompliziert. Manchmal verwenden wir setSize() und manchmal setPreferredSize(). Manchmal erfüllt das eine unsere Bedürfnisse und das andere nicht, also was ist das... Der Hauptunterschied zwischen diesen beiden Methoden? Welches sollten wir für JFrame und JPanel verwenden?Die Antwort ist, wenn Ihre Komponente kein übergeordnetes Element hat, verwenden Sie setSize() der die Größe einer Komponente ändert, andernfalls verwenden Sie setPreferredSize() und beide Methoden setMinimumSize() und setMaximumSize(). setPreferredSize() die ideale Größe für eine Komponente auswählt, versucht der Layoutmanager, den richtigen Platz für Ihre Komponente anzuordnen.
setSize() Tut nichts, wenn die übergeordnete Komponente einen Layout-Manager verwendet, den Ort, an dem setSize() hat eine Wirkung wäre in Top-Level-Komponenten wie JFrame und JWindow. Sie müssen anrufen: setSize() Wenn Sie Komponenten innerhalb des übergeordneten Elements ohne Layout-Manager haben.
So, setPreferredSize() Sie müssen das Richtige tun, wenn Sie einen Layout-Manager haben, denn die meisten von ihnen arbeiten in Wiederherstellung der optimalen, minimalen und maximalen Größe ihrer Komponenten. Gebrauchen setSize() und setLocation, um diese Komponenten gemäß den Parametern des gewählten Layouts zu positionieren.
Beispiel:
Ein BorderLayout versucht, die Grenzen des nördlichen Bereichs gleich der in angegebenen Dimension zu setzen setPreferredSize() seiner nördlichen Region. Es kann größer werden, abhängig von der Größe des JFrame und der Größe des Größe der anderen Komponenten gemäß layout.
Als Schlussfolgerung:
- setPreferredSize() berechnet die optimale Position und Dimension der Komponente, wenn Sie ein Layout haben.
- Wenn Sie kein Layout haben, ist das setSize() verwendet.