2010-11-23 7 views
0

Es scheint, als ob JDesktopPane sehr wenig verwendet wird, aber es scheint nicht veraltet zu sein. Sind sie irgendwelche Vorteile der Verwendung von JDesktopPane anstelle von JFrame? Ich plane hauptsächlich ein paar JInternalFrames hinein zu legen.Beim Erstellen einer MDI sollte ich JDesktopPane oder JFrame verwenden

EDIT: Ich habe nicht erkannt, dass ein JDesktopPane die Rolle eines Panels mehr füllt als ein Frame.

Ein JDesktopPane sollte in einem JFrame-contentPane statt in einem Jpanel sitzen. Danke für die Antworten Kameraden!

Antwort

1

Es ist schwierig, einen Vergleich zwischen den beiden zu machen, da sie unterschiedliche Zwecke haben.

Ich benutze JDesktopPane häufig in Anwendungen, die mehrere Frames benötigen, aber ich möchte nicht die Benutzer Taskleiste verstopfen und eine feinere Kontrolle des Frames wollen. Ja, es wird weniger als JFrame verwendet, aber ich denke nicht, dass es veraltet sein wird (zumindest nicht so bald).

1

JDesktopPane und JInternalFrame ist Swings Implementierung einer MDI-Anwendung. Alle internen Frames werden vom Desktopfenster und nicht vom Betriebssystem verwaltet.

Im Allgemeinen sollte eine Anwendung immer nur einen einzigen JFrame haben. Wenn Sie andere Fenster benötigen, verwenden Sie JDialogs.

+0

Was ich jedoch frage ist, was soll ich für den Container für JInternal Frames verwenden? JDesktopPane oder JFrame? Ich brauche wirklich keine anderen Fenster neben der JInternalFrames – davidahines

+2

Wie ich schon sagte, die beiden waren so konzipiert, zusammen verwendet werden. Warum erfinden Sie das Rad neu und versuchen Sie, einen JFrame dazu zu bringen, die Funktionalität eines Desktop-Bereichs zu unterstützen. Haben Sie sogar versucht, einem JFrame mehrere interne Frames hinzuzufügen? Hat es funktioniert? Haben Sie das Swing-Lernprogramm bei der Verwendung interner Frames getestet, um zu sehen, wie sie in einem Desktopfenster funktionieren? – camickr

+0

tat ich. Das Hinzufügen mehrerer interner Frames zu einem JFrame funktioniert und sie verhalten sich ähnlich. Die Aktionen wie Iconifizieren, Maximieren usw. funktionieren nicht, aber die Frames sitzen immer noch innerhalb der JFrame- oder JPanel-Strafe. Ich habe das Demo ausprobiert, aber ich habe festgestellt, dass es nicht klargestellt hat, dass es kein Top-Level-Container ist. – davidahines

Verwandte Themen