如何在 Java 中设置 BoxLayout 管理器的首选大小?


在这篇文章中,我们将学习如何在使用BoxLayout 管理器JFrame 中设置面板的首选大小,在Java Swing中。通过设置面板的首选大小和最大大小,我们可以控制布局的外观,确保面板在添加其他组件时保持一致的大小。当以结构化格式垂直或水平排列元素且具有特定大小要求时,此方法非常有用。

设置 BoxLayout 管理器首选大小的步骤

以下是设置 Java 中 BoxLayout 管理器首选大小的步骤:

  • 首先,我们将从 java.awtjava.swing 包导入必要的类。
  • 通过创建JFrame并将其布局设置为BoxLayout(使用垂直排列(BoxLayout.Y_AXIS))来初始化框架和布局
  • 通过初始化JPanel和几个JButton 组件来创建面板和按钮。将按钮添加到面板中。
  • 设置面板大小和对齐方式,为此使用setPreferredSize()setMaximumSize()来设置面板的首选大小和最大大小。为了保持一致的位置,将对齐方式设置为LEFT_ALIGNMENT
  • 面板添加到框架中,方法是将面板添加到框架的内容窗格并设置框架大小。
  • 最后,我们将框架可见性设置为 true 以显示布局。

设置 BoxLayout 管理器首选大小的 Java 程序

以下是设置 Java 中 BoxLayout 管理器首选大小的示例:

package my;
import java.awt.Component;
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class SwingDemo {
   public static void main(String[] args) {
      JFrame frame = new JFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.getContentPane().setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));
      JPanel panel = new JPanel();
      JButton btn1 = new JButton("One");
      JButton btn2 = new JButton("Two");
      JButton btn3 = new JButton("Three");
      JButton btn4 = new JButton("Four");
      JButton btn5 = new JButton("Five");
      panel.add(btn1);
      panel.add(btn2);
      panel.add(btn3);
      panel.add(btn4);
      panel.add(btn5);
      panel.setAlignmentX(Component.LEFT_ALIGNMENT);
      panel.setPreferredSize(new Dimension(100, 500));
      panel.setMaximumSize(new Dimension(100, 500));
      panel.setBorder(BorderFactory.createTitledBorder("demo"));
      frame.getContentPane().add(panel);
      frame.setSize(550, 300);
      frame.setVisible(true);
   }
}

输出

代码说明

在上面的代码中,我们创建了一个具有垂直BoxLayout(垂直排列组件)的JFrame。然后,我们添加一个包含五个JButton组件(btn1btn5)的JPanel,这些组件都向左对齐。setPreferredSize()setMaximumSize()方法固定了面板的大小,使其保持稳定。添加了标题边框以进行组织,并且框架设置为可见,并具有指定的尺寸,显示面板以及整齐排列的按钮。

更新于:2024年10月29日

1K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告