2009-09-30 4 views
6

In .net gibt es ein Steuerelement namens Verankerung, das verwendet wird, um Steuerelemente dynamisch mit dem Formular zu ändern. Wenn ein Steuerelement in einem Formular verankert ist und die Größe des Formulars geändert wird, behält das Steuerelement den Abstand zwischen dem Steuerelement und den Ankerpositionen bei.Verankerung und Andocken von Steuerelementen in Java Swing

Meine Frage ist, dass es Steuerelemente in Java gibt, die die gleiche Funktionalität wie Verankerung in .net.
Als Beispiel habe ich ein Textfeld ausgewählt und es auf dem Panel und Größe angepasst. Wenn ich jetzt die Größe des Fensters (JFrame) ändere oder das Fenster maximiere, wird das Textfeld nicht die gleiche Distanz wie zuvor beibehalten. Ich habe Netbeans verwendet und ich habe keine Eigenschaften in Pallete-Manager gefunden, die meine Frage beantwortet. Bitte erläutern Sie mir ein Beispiel oder einige Links.

Antwort

4

Java Swing Layoutmanager verwendet die Größe und Position der visuellen Komponenten zu verwalten. Dies ist die offizielle Java-Tutorial, wie man dieses Layout-Manager verwenden:

http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html

Und es gibt eine kurze Beschreibung der am häufigsten verwendeten Layout-Manager

Flowlayout (Standard): es die Komponenten verfügt links nach rechts und oben nach unten.

BorderLayout: es teilt den Container in NORD, SÜD, WEST, EAST Zentrum CENTER. Nur eine Komponente nach Position. Komponenten am Rand werden erweitert und die zentrale Komponente verwendet den verfügbaren Platz

GridLayout: Sie initialisieren den Manager, der angibt, wie viele Zeilen und Spalten das Grid haben soll. Jede Zelle hat dieselbe Größe und Sie beginnen mit dem Hinzufügen von Komponenten in der oberen linken Zelle.

GridBagLayout: der MOST feinste Layout-Manager, Sie können alles damit machen, aber ist ein bisschen kompliziert, sehen Sie die Java-Dokumentation dafür.

NullLayout (wenn Sie den Layout-Manager des Containers annullieren): Kein Layout-Manager, Komponenten verwenden die Standort- und Größeneigenschaften für Komponenten.

Und natürlich können Container in anderen Containern einen anderen Layoutmanager verwenden als ihre übergeordneten. Die Kombination von Layout-Managern ist eine schwierige Kunst zu lernen.

1

Netbeans unterstützt die Erstellung von GUIs mit dem Matisse GUI-Builder. Dies ist das Ergebnis, das Sie am ehesten mit dem Drag-&-Drop-Style-Formulardesign erreichen, das in Umgebungen wie VB verfügbar ist.

Es gibt eine Flash-Demo here.

(Ich persönlich bin kein großer Fan von diesem Ansatz jedoch, da es eine Menge Code generiert automatisch die schnell wartbaren wird, vor allem, wenn nicht jeder in Ihrem Entwicklungsteam ist mit Netbeans.)

0

Wenn Sie schon hat nur ein einziges Steuerelement dann mit java.awt.BorderLayout und Hinzufügen Ihrer Kontrolle mit BorderLayout.CENTER ist Ihre beste Wette.

Wenn Sie mehrere Steuerelemente haben, müssen Sie java.awt.GridBagLayout verwenden.

Sie müssen die folgenden Einstellungen:

gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; 
gridBagConstraints.fill = GridBagConstraints.BOTH; 
gridBagConstraints.weightx = 1; 
gridBagConstraints.weighty = 1; 

beim Hinzufügen der Steuerung Sie die Größe neu bestimmen wollen.

Es gibt ein Tutorial über es hier:

http://java.sun.com/docs/books/tutorial/uiswing/layout/gridbag.html