Java AWT | GridBagLayout类

GridBagLayout类是一个灵活的布局管理器。它用于水平、垂直或沿其基线对齐零部件。它不需要相同大小的组件。每个GridBagLayout对象管理一个矩形网格单元,每个组件都动态地占据一个或多个单元,称为其显示区域。GridBagLayout组件与GridBagConstraints实例关联。这些约束用于定义零部件的显示区域及其位置。除了约束对象外,GridBagLayout还考虑每个组件的最小和首选尺寸,以确定组件的尺寸。GridBagLayout组件也排列在矩形网格中,但可以有不同的大小,并且可以占用多行或多列。

null

建造师:

  • GridBagLayout(): 它用于创建网格袋布局管理器。

常用方法:

  • 拆下布局部件(部件cmp): 从此布局中删除指定的组件。
  • GetLayoutAlignment(容器p): 返回沿y轴的对齐方式。
  • addLayoutComponent(组件cmp,对象cons): 将具有指定名称的指定组件添加到布局中。
  • toString(): 返回此网格袋布局值的字符串表示形式。
  • getLayoutAlignmentX(容器p): 返回沿x轴的对齐方式。
  • getConstraints(组件cmp): 获取指定组件的约束。
  • 最大布局尺寸(集装箱焦油量): 给定指定目标容器中的组件,返回此布局的最大尺寸。
  • 最小布局尺寸(集装箱标准尺寸): 使用此网格袋布局确定父容器的最小大小。

下面的程序演示了GridBagLayout类:

  • 项目1: 下面的程序在一个列表中排列多个行和列组件 窗口 ,其实例类命名为“ Gridbagdemo ”. 我们创造了4个 按扭 名为“的组件” JAVA “, “ 布局 “, “ 经理 “, “ 演示 “然后将它们添加到 窗口 顺便说一下 添加() .我们通过方法设置框架的大小和可见性 设置大小() setVisible() .布局由方法设置 setLayout() .

JAVA

// Java program to demonstrate GridBagLayout class.
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.*;
// class extends JFrame
public class GridbagDemo extends JFrame {
GridbagDemo()
{
// Function to set title of JFrame.
setTitle( "GridBagLayoutDemo" );
// Creating Object of Jpanel class
JPanel p = new JPanel();
// set the layout
p.setLayout( new GridBagLayout());
// creates a constraints object
GridBagConstraints c = new GridBagConstraints();
// insets for all components
c.insets = new Insets( 2 , 2 , 2 , 2 );
// column 0
c.gridx = 0 ;
// row 0
c.gridy = 0 ;
// increases components width by 10 pixels
c.ipadx = 15 ;
// increases components height by 50 pixels
c.ipady = 50 ;
// constraints passed in
p.add( new JButton( "Java Swing" ), c);
// column 1
c.gridx = 1 ;
// increases components width by 70 pixels
c.ipadx = 90 ;
// increases components height by 40 pixels
c.ipady = 40 ;
// constraints passed in
p.add( new JButton( "Layout" ), c);
// column 0
c.gridx = 0 ;
// row 2
c.gridy = 1 ;
// increases components width by 20 pixels
c.ipadx = 20 ;
// increases components height by 20 pixels
c.ipady = 20 ;
// constraints passed in
p.add( new JButton( "Manager" ), c);
// increases components width by 10 pixels
c.ipadx = 10 ;
// column 1
c.gridx = 1 ;
// constraints passed in
p.add( new JButton( "Demo" ), c);
// Creating Object of "wndcloser"
// class of windowlistener
WindowListener wndCloser = new WindowAdapter() {
public void windowClosing(WindowEvent e)
{
// exit the system
System.exit( 0 );
}
};
// add the actionwindowlistener
addWindowListener(wndCloser);
// add the content
getContentPane().add(p);
// Function to set size of JFrame.
setSize( 600 , 400 );
// Function to set visibility of JFrame.
setVisible( true );
}
// Main Method
public static void main(String[] args)
{
// calling the constructor
new GridbagDemo();
}
}


输出:

  • 项目2: 下面的程序在一个列表中排列多个行和列组件 窗口 ,其实例类命名为“ Gridbagdemo ”. 我们创造了5个 按扭 组件,然后将它们添加到 窗口 顺便说一下 添加() .我们通过方法setTitle设置框架的标题、大小和可见性, 设置大小() setVisible() .布局由方法设置 setLayout() .

JAVA

// Java program to demonstrate GridBagLayout class.
import java.awt.*;
import javax.swing.JButton;
import javax.swing.JFrame;
// Constructor of GridBagLayout class.
public class GridBagLayoutDemo {
final static boolean shouldFill = true ;
final static boolean shouldWeightX = true ;
final static boolean RIGHT_TO_LEFT = false ;
public static void addComponentsToPane(Container pane)
{
// if condition
if (RIGHT_TO_LEFT) {
pane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
}
// Declaration of objects of JButton class
JButton button;
// set the layout
pane.setLayout( new GridBagLayout());
// creates a constraints object
GridBagConstraints c = new GridBagConstraints();
// if condition
if (shouldFill) {
// natural height, maximum width
c.fill = GridBagConstraints.HORIZONTAL;
}
// Initialization of object
// "button" of JButton class.
button = new JButton( "Button 1" );
// if condition
if (shouldWeightX) {
c.weightx = 0.5 ;
}
// column 0
c.gridx = 0 ;
// row 0
c.gridy = 0 ;
// Adding JButton "button" on JFrame.
pane.add(button, c);
// Initialization of object
// "button" of JButton class.
button = new JButton( "Button 2" );
// column 1
c.gridx = 1 ;
// row 0
c.gridy = 0 ;
// Adding JButton "button" on JFrame.
pane.add(button, c);
// Initialization of object
// "button" of JButton class.
button = new JButton( "Button 3" );
// column 1
c.gridx = 2 ;
// row 0
c.gridy = 0 ;
// Adding JButton "button" on JFrame.
pane.add(button, c);
// Initialization of object
// "button" of JButton class.
button = new JButton( "Long-Named Button 4" );
// increases components height by 40 pixels
c.ipady = 40 ;
// column width 0
c.weightx = 0.0 ;
// row width 3
c.gridwidth = 3 ;
// column 1
c.gridx = 0 ;
// row 1
c.gridy = 1 ;
// Adding JButton "button" on JFrame.
pane.add(button, c);
// Initialization of object
// "button" of JButton class.
button = new JButton( "Button 5" );
// increases components height by 0 pixels
c.ipady = 0 ;
// request any extra vertical space
c.weighty = 1.0 ;
// bottom of space
c.anchor = GridBagConstraints.PAGE_END;
// top padding
c.insets = new Insets( 10 , 0 , 0 , 0 );
// column 2
c.gridx = 1 ;
// 2 columns wide
c.gridwidth = 2 ;
// row 3
c.gridy = 2 ;
// Adding JButton "button" on JFrame.
pane.add(button, c);
}
// Create the GUI and show it.  For thread safety,
// this method should be invoked from the
// event-dispatching thread.
private static void createAndShowGUI()
{
// to set a Jframe default
JFrame.setDefaultLookAndFeelDecorated( true );
// Create and set up the window.
JFrame frame = new JFrame( "GridBagLayoutDemo" );
// Function to close the operation of JFrame.
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// adding the content pane.
addComponentsToPane(frame.getContentPane());
// Display the window.
frame.pack();
// Function to set visible status of JFrame.
frame.setVisible( true );
}
// Main Method
public static void main(String[] args)
{
// Schedule a job for the event-dispatching thread:
// creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater( new Runnable() {
public void run()
{
createAndShowGUI();
}
});
}
}


输出:

注: 上述程序可能无法在联机IDE中运行。请使用脱机编译器。 参考: https://docs.oracle.com/javase/7/docs/api/java/awt/GridBagLayout.html

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享