>  기사  >  Java  >  레이아웃 관리자와 대화 상자의 두 가지 예를 소개합니다.

레이아웃 관리자와 대화 상자의 두 가지 예를 소개합니다.

零下一度
零下一度원래의
2017-07-24 10:17:521475검색

처음 두 연구 노트에 이어 이 기사에서는 주로 레이아웃 관리자와 대화 상자를 소개합니다.

1. 레이아웃 관리자

주제를 소개하기 위해 간단한 예를 들어보겠습니다. 버튼 두 개를 마음대로 추가하면 어떤 효과가 나타나는지 살펴보겠습니다.

import java.awt.Button;import java.awt.Frame;public class Test25 {public static void main(String[] args) {
        Frame f = new Frame("布局管理器");
        f.setSize(300, 400);
        f.add(new Button("按钮A"));
        f.add(new Button("按钮B"));
        f.setVisible(true);
    }
}

실행 결과:

프로그램을 실행하면 두 번째 버튼 B만 보입니다.

그 이유는 컨테이너에서 각 구성 요소가 특정 위치와 크기를 갖기 때문입니다. 컨테이너에서 구성 요소를 정렬할 때 Java는 사용자 제어를 단순화하기 위해 관리용 레이아웃 관리자를 채택합니다. 컨테이너.다른 레이아웃 관리자.

1.BorderLayout(테두리 레이아웃, 기본 모드)은 컨테이너를 남동쪽, 북서쪽, 중앙의 5개 영역으로 나눕니다.

  Frame f=new Frame("布局管理器");
      f.add(new Button("按钮A"),BorderLayout.NORTH);
      f.add(new Button("按钮B"));
      f.add(new Button("按钮C"),"East");
      f.setBounds(20,20,300,300);
      f.setVisible(true);

2. FlowLayout FlowLayout에 "North"를 추가하면 왼쪽에서 오른쪽으로, 위에서 아래로. 레이아웃 ","East" 및 기타 매개변수는 무시됩니다

Frame f=new Frame("布局管理器");
    f.setLayout(new FlowLayout() );
    f.add(new Button("按钮A"),BorderLayout.NORTH);
    f.add(new Button("按钮B"));
    f.add(new Button("按钮B"));

3. GridLayout 그리드는 왼쪽에서 오른쪽으로, 위에서 아래로, 이 레이아웃은 항상 구성 요소의 최적 크기를 무시하며 모든 셀의 너비는 동일합니다.

4.CardLayout 탭 레이아웃

5.GridBagLayout은 강력하고 사용하기 복잡한 레이아웃의 왕입니다.

6.BoxLayOut은 여러 구성 요소를 수직 또는 수평으로 정렬할 수 있는 Swing의 새로운 레이아웃 관리자입니다. 이 레이아웃 관리자의 패널은

7.GridBagLayout과 유사한 기능을 수행할 수 있지만 GridBagLayOut을 사용하는 것보다 훨씬 간단합니다.

더 복잡한 코드 예제(목적은 왼쪽에 1개의 열과 3개의 행이 있는 그리드를 레이아웃하는 것입니다. 오른쪽 탭 레이아웃을 선택하고 왼쪽 버튼을 누르면 오른쪽에 해당 변경 사항이 적용됩니다.)

import java.awt.BorderLayout;import java.awt.Button;import java.awt.CardLayout;import java.awt.Color;import java.awt.Frame;import java.awt.GridLayout;import java.awt.Panel;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;//布局的例子class LayoutTest {public LayoutTest() {
        init();
    }

    CardLayout cl = new CardLayout(); // 卡片布局Panel plCenter = new Panel(); // 面板,容器private void init() {
        Frame f = new Frame();
        Panel plWest = new Panel();

        plWest.setBackground(Color.pink);
        plCenter.setBackground(Color.DARK_GRAY);

        f.add(plWest, BorderLayout.WEST); // 往左边放        f.add(plCenter);

        plWest.setLayout(new GridLayout(3, 1)); // 网格布局,三行,一列Button btnPrev = new Button("前一个");
        Button btnNext = new Button("后一个");
        Button btnThree = new Button("第三个");

        plWest.add(btnPrev);
        plWest.add(btnNext);
        plWest.add(btnThree);

        plCenter.setLayout(cl); // 中间的主面板,设为卡片布局plCenter.add(new Button("A"), "1AAA");
        plCenter.add(new Button("B"), "2AAA");
        plCenter.add(new Button("C"), "3AAA");
        plCenter.add(new Button("D"), "4AAA");
        plCenter.add(new Button("E"), "5AAA");
        plCenter.add(new Button("F"), "6AAA");// 用于按钮事件处理的内部类class MyActionListener implements ActionListener {public void actionPerformed(ActionEvent e) {if (e.getActionCommand().equals("前一个")) {
                    cl.previous(plCenter);
                } else if (e.getActionCommand().equals("后一个")) {
                    cl.next(plCenter);
                } else if (e.getActionCommand().equals("第三个")) {
                    cl.show(plCenter, "5AAA"); // 指定显示哪一个                }

            }
        }

        MyActionListener listener = new MyActionListener();

        btnPrev.addActionListener(listener);
        btnNext.addActionListener(listener);
        btnThree.addActionListener(listener);

        f.setSize(300, 300);
        f.setVisible(true);

        f.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }

}class Test26 {public static void main(String[] args) {new LayoutTest();
    }
}

참고: 레이아웃 관리자 취소(코드 예는 다음과 같습니다)

절대 좌표를 사용하여 지정할 수 있습니다 구성 요소의 위치와 크기를 조정하려면 이때 Container.setLayout(null)을 호출한 다음 Container.setBounds() 메서드를 호출해야 합니다.

import java.awt.Button;import java.awt.Frame;public class Test27 {// 例子,自定义按钮的位置public static void main(String[] args) {
        Frame f = new Frame();
        f.setSize(500, 400);

        f.setLayout(null); // 取消布局管理器Button btn = new Button("这是按钮");
        btn.setBounds(50, 50, 80, 40);
        f.add(btn);

        f.setVisible(true);
    }
}

2. 대화 상자

대화 상자는 우리가 매일 컴퓨터를 사용할 때 자주 볼 수 있으므로 여기서는 자세히 설명하지 않겠습니다. 코드 예제로 직접 이동하여 애플리케이션에 익숙해지세요.

rreee

위 내용은 레이아웃 관리자와 대화 상자의 두 가지 예를 소개합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.