Im Schnittstellendesign muss ein Behälter in vielen Komponenten platziert werden. Java.awt definiert eine Vielzahl von Layoutklassen, jede Layout -Klasse entspricht einer Layoutstrategie. Die folgende Layout -Kategorie:
• Durchflusslayout, platzierte Komponenten nacheinander.
• BoarderLayout, legen Sie die Komponenten an die Grenze.
• Cardlayout, Stapelkomponenten wie Pokerkarten und können jedes Mal eine der Komponenten anzeigen.
• Gridlayout unterteilt den Anzeigebereich in gleiche Gitter entsprechend den Zeilen und Säulen, und Komponenten werden nacheinander in diesen Gittern platziert.
• Gridbaglayout unterteilt den Anzeigebereich in viele kleine Einheiten, und jede Komponente kann eine oder mehrere kleine Einheiten besetzen.
Unter ihnen kann Gridbaglayout eine feine Positionskontrolle durchführen, und in diesem Tutorial wird diese Layout -Strategie nicht erörtert und es in einem speziellen Artikel ausführlich erklären.
Jeder Container verfügt über einen Layout -Manager und entscheidet, wie Komponenten im Container anordnen. Der Layout -Manager ist eine Klasse, die die LayoutManager -Schnittstelle implementiert.
1. Fluhlayout -Layout
Das FlowLayout -Layout soll die Komponenten von links nach rechts gemäß der Reihenfolge der Addition anordnen und dann zur Linie übertragen werden, um nach rechts nach einer Linie weiterzumachen, und die Komponenten in jeder Zeile sind in der Mitte angeordnet. Dies ist die einfachste Layout -Strategie.
FlowLayout ist das Standardlayout kleiner Anwendungen und Panels.
1.Flowlayout (), generieren Sie ein Standard -FlowLayout -Layout. Standardmäßig ist die Komponente in der Mitte mit 5 Pixel.
2. FlowLayout (intaligment), setzen Sie die Ausrichtungsmethode jeder Komponente. Ausrichtung kann für FlowLayout.Left, FlowLayout.Center, FlowLayout.richt verfügbar sein.
3.Flowlayout (int -Aligment, int Horz, int Vert), setzen Sie die Ausrichtungsmethode und setzen Sie den horizontalen Abstand Horz und vertikalen Abstand der Komponente ein. Stellen Sie das Layout des Behälters mit der Methode des Super -Klassenbehälters ein. Beispielsweise legt der Code -SetLayout (New FlowLayout ()) das FlowLayout -Layout für den Container fest. Die Methode zum Hinzufügen einer Komponente zum Container ist add (Komponentenname).
2. BorderLayout -Layout (Jwindow, Jframe, Jdialogs Standardlayout)
Die Borderlayout -Layout -Strategie besteht darin, den Raum einfach im Container in die fünf Gebiete von East "Ost", West "West", South "South", North "North" und "Center" zu teilen. Wenn Sie sich der Komponente anschließen, sollten Sie angeben, in welchem Bereich die Komponente platziert wird. Setzen Sie eine Komponente in eine Position. Wenn Sie an einem bestimmten Ort mehrere Komponenten hinzufügen möchten, sollten Sie zuerst die Komponente des Standorts hinzufügen, um einen anderen Container zu platzieren, und dann den Container dieser Position hinzuzufügen.
Die Strukturmethode des BorderLayout -Layouts lautet:
(1) BorderLayout (), generieren Sie ein Standard -BorderLayout -Layout. Standardmäßig gibt es keine Lücke.
(2) BorderLayout (int horz, int vert) setzen Sie den horizontalen und vertikalen Abstand zwischen den Komponenten ein.
Die Einstellungsmethode der BorderLayout -Layout -Strategie ist SetLayout (New BorderLayout ()). Die Methode zum Hinzufügen der Komponente zum Container ist hinzugefügt (Komponentenname, Speicherort).
Das BorderLayout -Layout ist das Standardlayout von Jwindow, JFrame, Jdialog.
[Beispiel 11-5] Die Anwendung verfügt über fünf Etiketten, die in den fünf Gebieten des Ostens, des Westens, des Südens, des Nordens und der Mitte und der Mitte platziert sind.
Javax.Swing.*; Fenster "); // Erstellen Sie ein Fenster Containerobjekt mw.setsize (250.200); Container con = mw.getContentPane (); con.setLayout (neuer BorderLayout (); Label1 = new JLabel (" East Tag "); / / / / / / / / / / / Die Standard -qi -Label2 = neuer JLabel ("South Tag", JLabel.Center); New Jlabel ("" Mid -Label ", Jlabel.Center); .Add (Label4, "North");
3.Gridlayout -Layout
Das Gridlayout -Layout soll den Behälter in eine gitterähnliche Rasterform teilen. Die Eigenschaften des Gridlayout -Layouts sind, dass die Komponentenpositionierung genauer ist. Da jedes Raster im Gridlayout -Layout die gleiche Form und Größe hat, sollten die Komponenten, die in den Behälter eingesetzt werden müssen, ebenfalls die gleiche Größe beibehalten.
Die konstruktive Methode des Gridlayout -Layouts lautet:
(1) GridLayout (), generieren Sie ein einzelnes Gridlayout -Layout. Standardmäßig gibt es keine Lücke.
(2) GridLayout (int row, int color), setzen Sie ein Gridlayout -Layout mit Zeile und Spalte Col.
(3) GridLayout (int row, int color, int horz, int vert), setzen Sie die Anzahl der Zeilen und Spalten des Layouts, den horizontalen und vertikalen Abstand der Komponente.
Das Layout von GridLayout basiert auf Verhaltensbenchmarks. Priorität (automatisch nach der Komponente erhöht). Jedes Raster des Gridlayout -Layouts muss in der Komponente gefüllt werden.
[Beispiel 11-6] Kleine Anwendungen geben zuerst mehrere Tasten und mehrere Etiketten in JPanel und geben Sie JPanel in JSCROLLPANE. als die tatsächlichen Anforderungen des Panels.
Java.Applet.*; Neue Dimension (w, h)) ++) {P.Add (new JLabel ()); ); (W+60, H+60); ();}} Klasse Scrolpane Excrollpane {public scrollpane (Komponente p) {Super (p); mywindow; {MyWindow = New MyWindow (400, 350);}}
Das Layout für ein Gridlayout erfordert, dass die Größe aller Komponenten konsistent ist, was möglicherweise nicht schön genug ist, um das Schnittstellenschein zu verwenden. Ein Mittel besteht darin, einige Komponenten in einem Behälter zu kombinieren, diesen Container dann als Komponente zu verwenden und dann in das Gridlayout -Layout zu legen. Dies ist der zuvor erwähnte Containernest. Zum Beispiel verwendet Container A Gridlayout -Layout, um den Container in Gitter zu teilen. Container B und C können auch auf das GridLayout -Layout eingestellt werden, sich in mehrere Gitter teilen oder auch auf andere Layouts eingestellt werden. Auf diese Weise ist die Größe der einzelnen Komponenten nach dem Aussehen unterschiedlich.
4.Cardlayout -Layout
Obwohl der Container, der das Cardlayout -Layout verwendet, mehrere Komponenten aufnehmen kann, haben mehrere Komponenten denselben Anzeigebereich, und es kann zu einem bestimmten Zeitpunkt nur eine Komponente angezeigt werden. Genau wie ein Stapel Pokerkarten nur die obere gleichzeitig anzeigen kann, belegt diese angezeigte Komponente den gesamten Raum des Containers. Cardlayout -Layout -Designschritte sind wie folgt:
Erstellen Sie zuerst ein Cardlayout -Layout -Objekt. Verwenden Sie dann die Methode setLayout (), um das Layout für den Container festzulegen. In den meisten Fällen fügt die Aufrufmethode add () den Container die Komponente zum Container hinzu. Die Methode zum Hinzufügen der Komponente der Cardlayout -Layout -Strategie lautet:
Add (Komponentencode, Komponente);
Der Komponentencode ist eine Zeichenfolge, die separat angegeben wird und nichts mit dem Komponentennamen zu tun hat.
Der folgende Code legt beispielsweise das Cardlayout -Layout für einen JPanel -Container fest:
Cardlayout myCard = new CardLayout ();
Es gibt zwei Möglichkeiten, eine Komponente in der von der Cardlayout -Klasse bereitgestellten Methode anzuzeigen:
(1) Code in Form von Show (Containername, Komponentencode) und geben Sie eine Komponentenanzeige in einem Container an. Der folgende Code gibt beispielsweise die Komponente des Containers P an, um diese Komponente anzuzeigen:
mycard.show (p, k);
(2) Die Komponente wird in der Reihenfolge des Hinzufügens des Containers gemäß der Komponente angezeigt.
zuerst (Container): zum Beispiel Code mycard.First (p);
last (Container): Zum Beispiel mycard.last (p);
Weiter (Container): Zum Beispiel MyCard.Next (p);
Zurück (Container): MyCard.Previous (p);
[Beispiel 11-7] Kleine Anwendungen verwenden Cardlayout-Layout. Das Fenster verfügt über 4 Tasten, die für die Anzeige der ersten Komponente von P, der letzten Komponente, der ersten Komponente der aktuellen Komponente und der letzten Komponente der aktuellen Komponente verantwortlich sind.
Java.applet.*; (); Mykard; Void init () {setLayout (neuer BorderLayout ()) // Das Layout des Applets ist das Grenzlayout myCard = neuer Cardlayout (); Mykard) // ps Layout ist auf ein Kartenlayout mypanel = new Mypanel [10]; ); (P2, "Erster", dies); iftactionCommand (). (E.GetactionCommand (). Equals ("前一个") MyCard.Previous (p);
5. Null -Layout- und Setbounds -Methode
Mit dem Luftlayout wird das Layout eines Behälters auf das Null -Layout eingestellt. Das Luftlayout verwendet die SetBounds () -Methode, um die Größe der Komponente selbst und die Position im Container festzulegen:
Setbounds (int x, int y, int breite, inthöhe)
Der von der Komponente besetzte Bereich ist ein Rechteck, Parameter x und y die Positionskoordinate der oberen linken Ecke der Komponente im Behälter. Es gibt zwei Schritte für die Neuansiedlung von Luftlayouts: Verwenden Sie zunächst die Methode add (), um Komponenten im Körperbehälter hinzuzufügen. Rufen Sie dann die SetBounds () -Methode auf, um die Position der Komponente im Container und die Größe der Komponente selbst festzulegen. Andere Methoden im Zusammenhang mit Komponenten:
1.GetSize ().
2.GetSize ()
3.SetVGAP (ing VGAP)
4.sethgap (int hgap);