`
wzf7065
  • 浏览: 247066 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

GridBagLayout布局管理器的应用

阅读更多
    GridBagLayout布局管理器比较复杂,参数也比较多,参数是
newGridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,fill,insert,ipadx,ipady);

每个参数的含义

gridx,gridy

设置组件的位置,gridx设置为GridBagConstraints.RELATIVE代表此组件位于之前所加入组件的右边。
gridy设置为GridBagConstraints.RELATIVE代表此组件位于以前所加入组件的下面。
建议定义出gridx,gridy的位置以便以后维护程序。gridx=0,gridy=0时放在0行0列。

gridwidth,gridheight

用来设置组件所占的单位长度与高度,默认值皆为1。
你可以使用GridBagConstraints.REMAINDER常量,代表此组件为此行或此列的最后一个组件,而且会占据所有剩余的空间。

weightx,weighty

用来设置窗口变大时,各组件跟着变大的比例。
当数字越大,表示组件能得到更多的空间,默认值皆为0。

anchor

当组件空间大于组件本身时,要将组件置于何处。
有CENTER(默认值)、NORTH、NORTHEAST、EAST、SOUTHEAST、WEST、NORTHWEST选择。

insets

设置组件之间彼此的间距。
它有四个参数,分别是上,左,下,右,默认为(0,0,0,0)。

ipadx,ipady

设置组件间距,默认值为0。

下面是一个小例子


package com.dr.swt.xuechengxitong;

import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

@SuppressWarnings("serial")
public class Teste3 extends JFrame{
	private static JTextArea jTextArea;
	private JButton jButton1;
	private JButton jButton2;
	private JButton jButton3;
	
    public Teste3(){   	
    	GridBagLayout gridbag = new GridBagLayout();   
    	this.setLayout(gridbag);   
    	JScrollPane scroll = new JScrollPane(getJtextArea(),    
              JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  
              JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);   
    	gridbag.setConstraints(scroll, new GridBagConstraints(0, 0, 3, 
              2, 1.0, 1.0,GridBagConstraints.CENTER,  
          GridBagConstraints.BOTH, new Insets(100, 100, 100, 100),   
    	    0, 0));   
    	gridbag.setConstraints(getJButton1(), new GridBagConstraints 
              (0, 2, 1, 1, 1.0, 0.0, GridBagConstraints.SOUTH,  
              GridBagConstraints.HORIZONTAL, new Insets(30, 200, 100,   
              100), 0, 0));   
    	gridbag.setConstraints(getJButton2(), new GridBagConstraints
              (1, 2, 1, 1, 1.0, 0.0,GridBagConstraints.SOUTH,
               GridBagConstraints.HORIZONTAL, new Insets(30, 100, 100, 
               100), 0, 0));   
    	gridbag.setConstraints(getJButton3(), new GridBagConstraints
              (2, 2, 1, 1, 1.0, 0.0,GridBagConstraints.SOUTH,
               GridBagConstraints.HORIZONTAL, new Insets(30, 100, 100,  
               200), 0, 0));     	 
    	this.add(scroll);   
    	this.add(getJButton1());   
    	this.add(getJButton2());   
    	this.add(getJButton3());   
    	Dimension screenSize = Toolkit.getDefaultToolki().
                                 getScreenSize();   
    	int screenWidth = (int) screenSize.getWidth();   
    	int screenHight = (int) screenSize.getHeight();   
    	this.setSize(screenWidth, screenHight);   
    	this.setVisible(true);
    }
    
    private JTextArea getJtextArea(){
    	if(jTextArea == null){
    		jTextArea = new JTextArea(); 
    		jTextArea.setLineWrap(true);
    	}
    	return jTextArea;
    }
    
    private JButton getJButton1(){
    	if(jButton1 == null){
    		jButton1 = new JButton("jButton1");
    	}
    	return jButton1;
    }
    
    private JButton getJButton2(){
    	if(jButton2 == null){
    		jButton2 = new JButton("jButton2");
    	}
    	return jButton2;
    }
    
    private JButton getJButton3(){
    	if(jButton3 == null){
    		jButton3 = new JButton("jButton3");
    	}
    	return jButton3;
    }
       
    public static void main(String args[]){
    	new Teste3();
    }
}
  


0
1
分享到:
评论

相关推荐

    网袋布局管理器--GridBagLayout使用介绍

    在Java Swing中,`GridBagLayout`是一种非常灵活的布局管理器,允许开发者精确控制组件在容器中的位置和大小。由于其灵活性,`GridBagLayout`成为创建复杂、自定义布局的理想选择,但它的确比其他布局管理器更复杂。...

    java中GridBagLayout布局管理器的详细讲解.doc

    ### Java中GridBagLayout布局管理器的详细讲解 #### 一、引言 在Java图形用户界面(GUI)设计中,界面布局是非常重要的一个环节。合理的布局不仅能够提高应用程序的美观性,还能够提升用户体验。Java提供了多种...

    Java Swing布局管理器

    GridBagLayout 布局管理器和 GridLayout 布局管理器不一样的是,一个组件不只是占一个网格位置,加入组件时,必须指明一个对应的参数。 布局管理器的工作过程是,每个容器保存一个对一个布局管理器的引用,这个布局...

    五种布局管理器的经典例子

    GridBagLayout是最灵活但也是最复杂的布局管理器。它允许组件在网格中占据任意大小的空间,并可以设置组件的水平和垂直对齐方式,以及权重来决定多余空间如何分配。GridBagConstraints对象用来设置每个组件的约束...

    第18讲 布局管理器.ppt

    本讲主要探讨了五种常用的布局管理器:FlowLayout、BorderLayout、CardLayout、GridLayout以及GridBagLayout。 1. FlowLayout:流式布局管理器是Java中最基础的布局管理器,也是Panel和Applet类的默认布局。它按照...

    Swing布局管理器

    在Java图形用户界面编程中,Swing作为一套强大的工具包,为开发者提供了丰富的组件和功能,其中布局管理器是构建美观且易于维护的GUI应用程序的关键部分。布局管理器负责自动地控制组件在容器中的位置和大小,从而...

    使用布局管理器布局界面.rar

    Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout、CardLayout和GridBagLayout。FlowLayout是最简单的布局,按照从左到右、从上到下的顺序排列组件。BorderLayout将界面分为五个区域:北、南、东...

    布局管理器及事件处理代码

    - GridBagLayout:最灵活的布局管理器,允许自定义组件大小和位置,但使用较为复杂。 2. **Android布局管理器**: - Linear Layout:沿着垂直或水平方向线性排列子视图。 - Relative Layout:根据相对位置关系来...

    java布局管理器实例

    Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout、GridBagLayout等,每种都有其特定的布局策略。 3. **主要布局管理器及其特点** - **FlowLayout**:从左到右,从上到下依次排列组件,如果一行...

    Java中GridBagLayout管理器实例.pdf

    在Java GUI编程中,`GridBagLayout`是一个强大的布局管理器,它允许开发者精确地控制组件在容器中的位置和大小。与其他布局管理器不同,`GridBagLayout`提供了更大的灵活性,使得开发者能够创建复杂的界面布局。以下...

    布局管理器示例代码.rar

    本压缩包"布局管理器示例代码.rar"显然包含了一些关于如何在实际应用中使用布局管理器的示例代码。这里我们将详细讨论布局管理器及其在GUI编程中的作用,以及一些常见的布局管理器类型。 布局管理器是GUI框架如Java...

    java swing布局管理器实例之gridbaglayout,实现左右选择框.doc

    在众多的布局管理器中,`GridBagLayout` 是最为灵活,但也最为复杂的。它允许开发者精确地控制组件的位置和大小,以适应各种复杂的布局需求。 在`GridBagLayout`中,有几个核心参数对于理解和使用该布局管理器至关...

    Java GUI(图形用户界面) 布局管理器

    7. GridBagLayout:这是最灵活但也是最复杂的布局管理器,允许精确控制每个组件的大小和位置,通过GridBagConstraints对象来设置约束条件。 在实际开发中,开发者通常会根据需要组合使用不同的布局管理器,甚至...

    Java中GridBagLayout的用法

    GridBagLayout是一种高度灵活且功能强大的布局管理器,在Java Swing图形用户界面编程中被广泛使用。相较于其他布局管理器如FlowLayout或BorderLayout,GridBagLayout提供更精细的控制能力,允许开发者精确地指定组件...

    GridBagLayout && JTable 排序

    在Java Swing中,`GridBagLayout`是一种灵活的布局管理器,它允许开发者精确地控制组件在容器中的位置和大小。而`JTable`是Swing提供的一种用于展示表格数据的组件,通常用于数据的显示、编辑和排序。这篇博客文章...

    jbcl.jar(用于布局管理)

    Java提供了多种内置的布局管理器,如FlowLayout、BorderLayout、GridLayout、CardLayout和GridBagLayout,每种都有其特定的布局策略。开发者可以根据需求选择合适的布局管理器,以实现美观且功能完善的用户界面。 *...

    jbcl.jar,用于布局管理器

    Java 标准库中已经包含了数种内置的布局管理器,如 FlowLayout、GridLayout、BorderLayout 和 GridBagLayout,但 JBuilder 扩展了这一功能,提供了更高级和定制化的布局解决方案。 `jbcl.jar` 中可能包含以下布局...

    DesignGridLayout 布局管理器

    在Java Swing的标准布局管理器中,如GridLayout、BorderLayout或GridBagLayout,实现这种网格布局可能需要编写大量代码,而DesignGridLayout则通过更直观的方法实现了这一目标。 DesignGridLayout的特点包括: 1. ...

Global site tag (gtag.js) - Google Analytics