Heim  >  Artikel  >  Java  >  Größenänderung eines JDialogs: Warum funktioniert SetMaximumSize möglicherweise nicht?

Größenänderung eines JDialogs: Warum funktioniert SetMaximumSize möglicherweise nicht?

DDD
DDDOriginal
2024-10-23 22:40:02256Durchsuche

Resizing a JDialog: Why SetMaximumSize May Not Work?

Festlegen der maximalen Größe eines JDialogs

Problem

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.

Lösung

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.

Beispiel

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn