인터페이스 디자인에서는 컨테이너가 많은 구성 요소에 배치되어야합니다. Java.awt 다양한 레이아웃 클래스를 정의하고 각 레이아웃 클래스는 레이아웃 전략에 해당합니다. 다음 레이아웃 범주 :
• FlowLayout, 구성 요소를 차례로 배치했습니다.
• Bockerlayout, 구성 요소를 경계에 올려 놓으십시오.
• Cardlayout, 포커 카드와 같은 스택 구성 요소 및 매번 구성 요소 중 하나만 표시 할 수 있습니다.
• 그리드 레이 아웃은 디스플레이 영역을 라인과 열에 따라 동일한 그리드로 나누고 구성 요소는 이러한 그리드에 차례로 배치됩니다.
• Gridbaglayout 디스플레이 영역을 여러 개의 작은 장치로 나누고 각 구성 요소는 하나 이상의 작은 장치를 차지할 수 있습니다.
그중에서도 Gridbaglayout은 정밀한 위치 제어를 수행 할 수 있으며이 튜토리얼은 당분간이 레이아웃 전략에 대해 논의하지 않으며 특별한 기사에서 자세히 설명합니다.
각 컨테이너에는 레이아웃 관리자가 있으며 컨테이너에 구성 요소를 배열하는 방법을 결정합니다. 레이아웃 관리자는 LayoutManager 인터페이스를 구현하는 클래스입니다.
1. 플로우 레이 아웃 레이아웃
FlowLayout 레이아웃은 추가 순서에 따라 구성 요소를 왼쪽에서 오른쪽으로 배열 한 다음 한 줄로 왼쪽에서 오른쪽으로 계속 이동하고 각 줄의 구성 요소가 중간에 배열되는 것입니다. 이것은 가장 쉬운 레이아웃 전략입니다. 일반적으로 구성 요소가 많지 않은 경우에는 컨테이너의 구성 요소가 고르지 않으며 주지사는 짧습니다.
FlowLayout은 작은 응용 프로그램 및 패널의 기본 레이아웃입니다.
1. flowlayout (), 기본 FlowLayout 레이아웃을 생성합니다. 기본적으로 구성 요소는 중간에 있으며 5 픽셀이 있습니다.
2. FlowLayout (int aligment), 각 구성 요소의 정렬 메소드를 설정하십시오. FlowLayout.left, FlowLayout.Center, FlowLayout.Richt에서 정렬을 사용할 수 있습니다.
3. flowlayout (int aligment, int horz, int vert), 정렬 방법을 설정하고 수평 간격 호르츠와 수직 간격 vert를 설정하고 컨테이너의 레이아웃을 슈퍼 클래스 컨테이너의 방법으로 설정합니다. 예를 들어, Code SetLayout (New FlowLayout ())은 컨테이너의 FlowLayout 레이아웃을 설정합니다. 컨테이너에 구성 요소를 추가하는 방법은 추가 (구성 요소 이름)입니다.
2. Borderlayout 레이아웃 (Jwindow, Jframe, Jdialog의 기본 레이아웃)
Borderlayout 레이아웃 전략은 컨테이너의 공간을 동쪽 "East", West "West", South "South", North "및"Center "의 5 개 지역으로 간단히 나누는 것입니다. 구성 요소를 결합 할 때 어떤 영역이 배치되는지 표시해야합니다. 위치에 구성 요소를 넣으십시오. 특정 위치에 여러 구성 요소를 추가하려면 먼저 위치 구성 요소를 추가하여 다른 컨테이너를 배치 한 다음이 위치에 컨테이너를 추가해야합니다.
Borderlayout 레이아웃의 구조 방법은 다음과 같습니다.
(1) BorderLayout (), 기본 경계선 레이아웃을 생성합니다. 기본적으로 간격이 없습니다.
(2) BorderLayout (Int Horz, Int Vert), 구성 요소 사이의 수평 및 수직 간격을 설정합니다.
BorderLayout 레이아웃 전략의 설정 방법은 SetLayout (New BorderLayout ())입니다. 컨테이너에 구성 요소를 추가하는 방법은 구성 요소를 추가 할 때 지정된 위치가 없으면 기본값은 "중간"위치입니다.
Borderlayout 레이아웃은 Jwindow, Jframe, Jdialog의 기본 레이아웃입니다.
[예 11-5] 응용 프로그램에는 5 개의 레이블이 있으며,이 레이블은 각각 동쪽, 서쪽, 남쪽, 북쪽 및 중간의 5 개 지역에 배치됩니다.
javax.swing Window "); // 창 컨테이너 개체 생성 MW.SetSize (250,200); 컨테이너 Con = MW.GetContentPane (); Con.setLayout (New BorderLayout ()); label1 = New Jlabel ("East Tag "); / / / Qi Qi Label2 = "South Tag", jlabel.center 3 = label4 = new Jlabel ( "North Tag", jlabel.center); New Jlabel ( "Mid -label", Con.add (label.add); .add (label4, "North");
3.GridLayout 레이아웃
그리드 레이 아웃 레이아웃은 컨테이너를 그리드와 같은 그리드 모양으로 나누는 것입니다. GridLayout 레이아웃의 특성은 구성 요소 위치가 더 정확하다는 것입니다. 그리드 레이 아웃 레이아웃의 각 그리드는 모양과 크기가 동일하기 때문에 컨테이너에 넣는 데 필요한 구성 요소도 같은 크기를 유지해야합니다.
Gridlayout 레이아웃의 건설적인 방법은 다음과 같습니다.
(1) GridLayout (), 단일 -Column GridLayout 레이아웃을 생성합니다. 기본적으로 간격이 없습니다.
(2) GridLayout (int row, int color), 행 및 열 col으로 GridLayout 레이아웃을 설정하십시오.
(3) GridLayout (int row, int color, int horz, int vert), 레이아웃의 행 수와 열, 구성 요소의 수평 및 수직 간격을 설정합니다.
Gridlayout의 레이아웃은 행동 벤치 마크를 기반으로합니다. 구성 요소의 수가 과도하게 증가하면 자동으로 컬럼이 줄어들고, 행이 변경되지 않으며, 구성 요소가 변경되지 않습니다. 우선 순위 (구성 요소에 따라 자동으로 증가). 그리드 레이아웃의 각 그리드는 구성 요소에 채워야합니다.
[예 11-6] 작은 응용 프로그램은 먼저 JPANEL에 몇 개의 버튼과 여러 레이블을 넣은 다음 JSCrollPane에 JSCrollPane을 넣으십시오. 스크롤 막대를 움직일 수있는 슬라이더 디스플레이 패널의 실제 요구 사항보다 시각적 범위 내에 있지 않습니다.
Java.applet.*; import java.awt.*; 새로운 차원 (W, H); ++) {p.add (new jlabel ()); ); (w+60, h+60); ();}} Class Scrolpane Excrollpane {public scrollpane (component p) {sethorizontalscro llbarpolicy (jscrolpane.horizontal_scrollbar_alway); MyWindow; public void init () {myWindow = New MyWindow (400, 350);}}
GridLayout 레이아웃은 모든 구성 요소의 크기가 일관성이 있어야하므로 인터페이스 모양을 사용하기에 충분히 아름답 지 않을 수 있습니다. 치료법은 컨테이너의 일부 구성 요소를 결합한 다음이 컨테이너를 구성 요소로 사용한 다음 GridLayout 레이아웃에 넣는 것입니다. 이것은 앞에서 언급 한 컨테이너 중첩입니다. 예를 들어, 컨테이너 A는 그리드 레이 아웃 레이아웃을 사용하여 컨테이너를 그리드로 나누고 B와 C는 각각 컨테이너 A에 구성 요소로 추가됩니다. 컨테이너 B와 C는 또한 그리드 레이 아웃 레이아웃으로 설정하거나 여러 그리드로 나누거나 다른 레이아웃으로 설정할 수도 있습니다. 이런 식으로, 외관에서 각 구성 요소의 크기는 다릅니다.
4. Cardlayout 레이아웃
Cardlayout 레이아웃을 사용하는 컨테이너는 여러 구성 요소를 수용 할 수 있지만 여러 구성 요소는 동일한 디스플레이 공간을 가지며 특정 순간에 하나의 구성 요소 만 표시 할 수 있습니다. 포커 카드 스택이 한 번에 상단을 표시 할 수있는 것처럼,이 표시 된 구성 요소는 컨테이너의 모든 공간을 차지하게됩니다. Cardlayout 레이아웃 디자인 단계는 다음과 같습니다.
먼저 Cardlayout 레이아웃 객체를 만듭니다. 그런 다음 setlayout () 메소드를 사용하여 컨테이너의 레이아웃을 설정하십시오. 컨테이너를 호출하는 add () 메소드는 구성 요소를 컨테이너에 추가합니다. Cardlayout 레이아웃 전략의 구성 요소를 추가하는 방법은 다음과 같습니다.
추가 (구성 요소 코드, 구성 요소);
구성 요소 코드는 문자열이며 별도로 제공되며 구성 요소 이름과 관련이 없습니다.
예를 들어, 다음 코드는 jpanel 컨테이너의 Cardlayout 레이아웃을 설정합니다.
Cardlayout mycard = new Cardlayout ();
CardLayout 클래스에서 제공 한 메소드에서 구성 요소를 표시하는 두 가지 방법이 있습니다.
(1) 표시 형식 (컨테이너 이름, 구성 요소 코드)의 코드를 작성하고 컨테이너에 구성 요소 디스플레이를 지정하십시오. 예를 들어, 다음 코드는이 구성 요소를 표시 할 컨테이너 P의 구성 요소를 지정합니다.
mycard.show (p, k);
(2) 구성 요소에 따라 컨테이너를 추가하기 위해 구성 요소가 표시됩니다.
첫 번째 (컨테이너) : 예를 들어, Code MyCard.First (P);
마지막 (컨테이너) : 예를 들어, mycard.last (p);
다음 (컨테이너) : 예를 들어, mycard.next (p);
이전 (컨테이너) : mycard.previous (p);
[예 11-7] 작은 응용 프로그램은 Cardlayout 레이아웃을 사용하여 10 개의 태그 구성 요소를 설정합니다. 창에는 4 개의 버튼이 있는데,이 버튼은 P의 첫 번째 구성 요소, 마지막 구성 요소, 현재 구성 요소의 첫 번째 구성 요소 및 현재 구성 요소의 마지막 구성 요소를 표시합니다.
Java.Ava.event (); LABEL1 = "I AM"+X+"레이블"; Mycard; MyPanel MyPanel; void init () {setlayout (); Mycard); // P의 레이아웃은 카드 유형 레이아웃 MyPanel = New MyPanel로 설정됩니다 [int i = 0; i <10; i ++) {MyPanel [i+1. p .add ( "+i, mypanel [i]); (P2, "첫 번째", "후자"; iftactionCommand (). (e.getActionCommand (). equals ( "前一个")) mycard.previous (e.getActionCommand ()) mycard.next (p);
5. 널 레이아웃 및 SetBounds 메소드
에어 레이아웃은 컨테이너 레이아웃을 널 레이아웃으로 설정하는 것입니다. 에어 레이아웃은 setBounds () 메소드를 사용하여 구성 요소 자체의 크기와 컨테이너의 위치를 설정합니다.
setBounds (int x, int y, int 너비, int 높이)
구성 요소에 의해 점유 된 영역은 파라미터 X이며, y는 컨테이너의 구성 요소의 왼쪽 상단 코너의 위치 좌표이며, 높이는 구성 요소의 너비와 높이입니다. 에어 레이아웃 재 정착 구성 요소에는 두 단계가 있습니다. 먼저 Add () 메소드를 사용하여 바디 컨테이너에 구성 요소를 추가하십시오. 그런 다음 setBounds () 메소드를 호출하여 컨테이너의 구성 요소 위치와 구성 요소 자체의 크기를 설정하십시오. 구성 요소와 관련된 기타 방법 :
1. getSize ().
2. GetSize ()
3. SETVGAP (Ing VGAP)
4.sethgap (int hgap);