ホームページ  >  記事  >  Java  >  スイングのレイアウトは全部で何通りありますか?

スイングのレイアウトは全部で何通りありますか?

WBOY
WBOYオリジナル
2024-02-19 18:01:05791ブラウズ

スイングのレイアウトは全部で何通りありますか?

Swing は、グラフィカル ユーザー インターフェイスを作成するための開発ツールとして、コンポーネントを柔軟に整理および配置するのに役立つ豊富なレイアウト マネージャーを備えています。以下では、Swing で一般的に使用されるいくつかのレイアウト マネージャーを紹介し、対応するコード例を示します。

  1. BorderLayout (ボーダー レイアウト マネージャー)
    BorderLayout は、Swing で最もよく使用されるレイアウト マネージャーの 1 つで、コンテナーを北、南、東、西、中央の 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 (フロー レイアウト マネージャー)
    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 を継承することで、特別なニーズに合わせてレイアウト マネージャーをカスタマイズすることもできます。

以上がスイングのレイアウトは全部で何通りありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。