Java Swing 中合併 BorderLayout、GridLayout 和 FlowLayout 的程式?


在本文中,我們設定了具有 BorderLayout、GridLayout 和 FlowLayout 的面板。在這些面板中,我們建立了諸如按鈕、組合框等元件。以下是 Java 中組合佈局的一個示例 −

示例

package my;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class SwingDemo {
   public static void main(String[] args) {
      JButton btnA = new JButton("Button1 (Left)");
      JButton btnB = new JButton("Button2 (Right)");
      JButton btnC = new JButton("Button3 (Left)");
      JButton btnD = new JButton("Button4 (Right)");
      btnA.setPreferredSize(new Dimension(150, 20));
      btnB.setPreferredSize(new Dimension(150, 20));
      btnC.setPreferredSize(new Dimension(150, 20));
      btnD.setPreferredSize(new Dimension(150, 20));
      JPanel btnAPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
      JPanel btnBPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
      JPanel btnCPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
      JPanel btnDPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
      btnAPanel.add(btnA);
      btnBPanel.add(btnB);
      btnCPanel.add(btnC);
      btnDPanel.add(btnD);
      JPanel panelGrid = new JPanel(new GridLayout(10, 5, 10, 10));
      panelGrid.add(new JCheckBox("Demo CheckBox1"));
      panelGrid.add(new JCheckBox("Demo CheckBox2"));
      panelGrid.add(btnAPanel);
      panelGrid.add(btnBPanel);
      panelGrid.add(btnCPanel);
      panelGrid.add(btnDPanel);
      JPanel panelBrdLayout = new JPanel(new BorderLayout());
      panelBrdLayout.add(panelGrid, BorderLayout.SOUTH);
      panelBrdLayout.setPreferredSize(new Dimension(550, 300));
      JFrame frame = new JFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.add(panelBrdLayout);
      frame.setSize(550, 400);
      frame.setVisible(true);
   }
}

輸出


更新日期:2019 年 7 月 30 日

超過 1K 次瀏覽

開啟您的職業生涯

完成本課程,獲得認證

立即開始
廣告