Heim >Java >javaLernprogramm >Größenänderung eines JDialogs: Warum funktioniert SetMaximumSize möglicherweise nicht?
Sie möchten, dass ein JDialog seine Größe basierend auf dem Inhalt eines enthaltenen JPanels dynamisch anpasst, aber sogar Nach dem Festlegen der setMaximumSize-Eigenschaft ändert sich die Größe des Dialogs immer noch über das angegebene Maximum hinaus.
Während das Festlegen der maximalen Größe ausreichend erscheinen mag, können unkonventionelle Interaktionen zwischen JDialog, BorderLayout und MaximumSize seine Funktionalität beeinträchtigen . Erwägen Sie stattdessen die Verwendung der setVisibleRowCount-Methode von JList oder getViewport().setPreferredSize(...), um relevante Informationen zum Festlegen der bevorzugten Größe bereitzustellen.
Im folgenden Beispiel ein Dialog Passt seine Größe an, um eine JList mit maximal N Zeilen anzuzeigen. Wenn Sie auf die Schaltfläche „Hinzufügen“ klicken, werden der Liste Zeilen hinzugefügt, wodurch das Dialogfeld erweitert wird, bis es die maximale Größe erreicht. An diesem Punkt werden Bildlaufleisten angezeigt.
<code class="java">public class ListDialog { // ... private void append() { model.addElement("String " + String.valueOf(++count)); list.ensureIndexIsVisible(count - 1); if (count <= N) { list.setVisibleRowCount(count); dlg.pack(); } } // ... }</code>
Das obige ist der detaillierte Inhalt vonGrößenänderung eines JDialogs: Warum funktioniert SetMaximumSize möglicherweise nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!