首頁 >Java >java教程 >一共有多少種swing佈局?

一共有多少種swing佈局?

WBOY
WBOY原創
2024-02-19 18:01:05857瀏覽

一共有多少種swing佈局?

swing作為一種用於建立圖形使用者介面的開發工具,具有豐富的佈局管理器,可以幫助我們靈活地組織和佈置元件。以下將介紹swing中常用的幾種佈局管理器,並提供相應的程式碼範例。

  1. BorderLayout(邊界佈局管理器)
    BorderLayout是swing中最常用的佈局管理器之一,它將容器劃分為北、南、東、西和中五個區域,可以透過設定組件新增到不同的區域。

範例程式碼如下:

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(串流佈局管理器)
    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);
    }
}

以上是swing中常用的幾種佈局管理器及對應的程式碼範例,可以根據實際需求選擇合適的佈局管理器來佈置元件。同時,我們也可以透過繼承自LayoutManager的方式自訂佈局管理器來滿足特殊的需求。

以上是一共有多少種swing佈局?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn