>  기사  >  Java  >  스윙 레이아웃은 총 몇 개인가요?

스윙 레이아웃은 총 몇 개인가요?

WBOY
WBOY원래의
2024-02-19 18:01:05840검색

스윙 레이아웃은 총 몇 개인가요?

그래픽 사용자 인터페이스를 만들기 위한 개발 도구인 Swing에는 구성 요소를 유연하게 구성하고 배열하는 데 도움이 되는 풍부한 레이아웃 관리자가 있습니다. 다음은 스윙에서 일반적으로 사용되는 몇 가지 레이아웃 관리자를 소개하고 해당 코드 예제를 제공합니다.

  1. BorderLayout(테두리 레이아웃 관리자)
    BorderLayout은 스윙에서 가장 일반적으로 사용되는 레이아웃 관리자 중 하나입니다. 컨테이너를 북쪽, 남쪽, 동쪽, 서쪽 및 중앙의 5개 영역으로 나누는 설정을 통해 다양한 영역에 추가할 수 있습니다. 구성 요소 영역.

샘플 코드는 다음과 같습니다.

import javax.swing.*;

public class BorderLayoutExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("BorderLayout Example");
        frame.setLayout(new BorderLayout());

        JButton btnNorth = new JButton("North");
        JButton btnSouth = new JButton("South");
        JButton btnEast = new JButton("East");
        JButton btnWest = new JButton("West");
        JButton btnCenter = new JButton("Center");

        frame.add(btnNorth, BorderLayout.NORTH);
        frame.add(btnSouth, BorderLayout.SOUTH);
        frame.add(btnEast, BorderLayout.EAST);
        frame.add(btnWest, BorderLayout.WEST);
        frame.add(btnCenter, BorderLayout.CENTER);

        frame.setSize(300, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}
  1. FlowLayout(Flow Layout Manager)
    FlowLayout은 추가된 순서대로 구성 요소를 정렬합니다. 컨테이너의 너비가 모든 구성 요소를 수용하기에 충분하지 않으면 자동으로 래핑됩니다. 그리고 디스플레이.

샘플 코드는 다음과 같습니다.

import javax.swing.*;

public class FlowLayoutExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("FlowLayout Example");
        frame.setLayout(new FlowLayout());

        JButton btn1 = new JButton("Button 1");
        JButton btn2 = new JButton("Button 2");
        JButton btn3 = new JButton("Button 3");
        JButton btn4 = new JButton("Button 4");

        frame.add(btn1);
        frame.add(btn2);
        frame.add(btn3);
        frame.add(btn4);

        frame.setSize(300, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}
  1. GridLayout(그리드 레이아웃 관리자)
    GridLayout은 구성 요소를 행과 열로 정렬합니다. 컨테이너의 크기가 변경되면 구성 요소의 크기도 동일해집니다. 자동으로 조정됩니다.

샘플 코드는 다음과 같습니다.

import javax.swing.*;

public class GridLayoutExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("GridLayout Example");
        frame.setLayout(new GridLayout(3, 3));

        for (int i = 1; i <= 9; i++) {
            JButton btn = new JButton("Button " + i);
            frame.add(btn);
        }

        frame.setSize(300, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}
  1. CardLayout(카드 레이아웃 관리자)
    CardLayout은 카드를 뒤집는 것과 유사하게 여러 구성 요소를 동일한 위치에 겹쳐 놓고 서로 다른 구성 요소를 전환하여 서로 다른 콘텐츠를 표시합니다.

샘플 코드는 다음과 같습니다.

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class CardLayoutExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("CardLayout Example");
        frame.setLayout(new CardLayout());

        JButton btn1 = new JButton("Card 1");
        JButton btn2 = new JButton("Card 2");
        JButton btn3 = new JButton("Card 3");

        frame.add(btn1, "Card 1");
        frame.add(btn2, "Card 2");
        frame.add(btn3, "Card 3");

        btn1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                CardLayout cl = (CardLayout) frame.getContentPane().getLayout();
                cl.show(frame.getContentPane(), "Card 2");
            }
        });

        btn2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                CardLayout cl = (CardLayout) frame.getContentPane().getLayout();
                cl.show(frame.getContentPane(), "Card 3");
            }
        });

        btn3.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                CardLayout cl = (CardLayout) frame.getContentPane().getLayout();
                cl.show(frame.getContentPane(), "Card 1");
            }
        });

        frame.setSize(300, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

위는 스윙에서 일반적으로 사용되는 여러 레이아웃 관리자와 해당 코드 예제입니다. 실제 필요에 따라 구성 요소를 배열하기 위해 적절한 레이아웃 관리자를 선택할 수 있습니다. 동시에 LayoutManager에서 상속하여 특별한 요구 사항을 충족하도록 레이아웃 관리자를 사용자 정의할 수도 있습니다.

위 내용은 스윙 레이아웃은 총 몇 개인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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