精华内容
下载资源
问答
  • 在Swing中,每个组件在容器中都有一个具体的位置大小、而在...Swing提供的常用布局管理器有FlowLayout流布局管理器、BorderLayout边界布局管理器和GridLayout网格布局管理器,这些布局管理器位于java.awt包中。下面...

    在Swing中,每个组件在容器中都有一个具体的位置大小、而在容器中摆放各种组件时很难判断其具体位置和大小,使用布局管理器比程序员直接在容器中控制Swing组件的位置和大小方便得多,可以更加有效地处理整个窗体的布局。Swing提供的常用布局管理器有FlowLayout流布局管理器BorderLayout边界布局管理器GridLayout网格布局管理器,这些布局管理器位于java.awt包中。下面将对常用的布局管理器进行讲解。

    FlowLayout流布局管理器

    流布局管理器是最基本的布局管理器,在整个容器中的布局正如其名,像流一样从左到右摆放组件,直到占据了这一行的所有空间,然后在向下移动一行,默认情况下,组件在每一行都是居中排列的,但是通过设置也可以更改组件在每一行上的排列位置。FlowLayout类中有以下常用的构造方法:

    • public FlowLayout()
    • public FlowLayout(int alignment)
    • public FlowLayout(int alignment,int horizGap,int vertGap)

    构造方法中的alignment参数表示使用流布局管理器后组件在每一行的具体摆放位置,它可以被赋予FlowLayout.LEFT、FlowLayout.CENTER和FlowLayout.RIGHT这三个值中的任意一个,它们的详细说明见下表:

    alignment参数说明
    FlowLayout.LEFT在每一个行的组件将被指定为按照左对齐排列
    FlowLayout.CENTER在每一行的组件将被指定为按照居中对齐排列
    FlowLayout.RIGHT在每一行的组件将被指定为按照右对齐排列

    public FlowLayout(int alignment,int horizGap,int vertGap)构造方法中还存在horizGap与vertGap两个参数,这两个参数分别以像素为单位指定组件之间的水平间隔与垂直间隔

    下面是一个使用流布局管理器的实例,代码如下:

    
    import java.awt.Container;
    import java.awt.FlowLayout;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.WindowConstants;
    
    public class Demo extends JFrame {
    	public Demo() {
    		setTitle("本窗体使用流布局管理器"); // 设置窗体标题
    		Container c = getContentPane();
    		// 设置窗体使用流布局管理器,使组件右对齐,组件之间的水平间隔为10像素,垂直间隔10像素
    		setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 10));
    		for (int i = 0; i < 10; i++) { // 在容器中循环添加10个按钮
    			c.add(new JButton("button" + i));
    		}
    		setSize(300, 200); // 设置窗体大小
    		// 设置窗体关闭方式
    		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    		setVisible(true); // 设置窗体可见
    	}
    
    	public static void main(String[] args) {
    		new Demo();
    	}
    }
    

    返回结果:

                                         

    从本实例可以看出,如果改变整个窗口大小,其中组件的摆放位置也会相应地发生变化,正好验证了使用流布局管理器时组件从左到右摆放的效果当组件填满一行后将自动换行直到所有的组件都摆放到容器为止,默认效果图是左边,手动改变窗体大小,如右图。                       

    BorderLayout边界布局管理器

    创建完窗体后,在默认不指定窗体布局的情况下,Swing组件的布局模式是边界布局,边界布局管理器可以将容器划分为东、南、西、北、中5个区域,如下图:

    设计窗体时,可以将组件加入到边界布局管理器的5个区域中,另外,在调用Container类的add()方法向容器中添加组件时,可以设置此组件在边界布局管理器中的区域,区域的控制可以由BorderLayout类中的成员变量来决定,这些成员变量的具体含义如下表:

    成员变量含义
    BorderLayout.NORTH在容器中添加组建时,组件置于北部
    BorderLayout.SOUTH在容器中添加组建时,组件置于南部
    BorderLayout.EAST在容器中添加组建时,组件置于东部
    BorderLayout.WEST在容器中添加组建时,组件置于西部
    BorderLayout.CENTER在容器中添加组建时,组件置于中间区域开始填充,直到与其他组件边界连接

    注意:如果使用了边界布局管理器,在向容器中添加组件时,如果不指定添加到那个区域,则默认添加到CENTER区域,如果向一个区域中添加多个组件,后放入的组件会覆盖先放入的组件。

    下面是一个使用边界布局管理器的实例,代码如下:

    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Container;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.WindowConstants;
    
    public class Demo extends JFrame {
    	public Demo() {
    		setTitle("这个窗体使用边界布局管理器");
    		Container c = getContentPane(); // 定义一个容器
    		setLayout(new BorderLayout()); // 设置容器为边界布局管理器
    		JButton centerBtn = new JButton("中"), 
    			northBtn = new JButton("北"), 
    			southBtn = new JButton("南"),
    			westBtn = new JButton("西"), 
    			eastBtn = new JButton("东");
    		c.add(centerBtn, BorderLayout.CENTER);// 中部添加按钮
    		c.add(northBtn, BorderLayout.NORTH);// 北部添加按钮
    		c.add(southBtn, BorderLayout.SOUTH);// 南部添加按钮
    		c.add(westBtn, BorderLayout.WEST);// 西部添加按钮
    		c.add(eastBtn, BorderLayout.EAST);// 东部添加按钮
    		setSize(350, 200); // 设置窗体大小
    		setVisible(true); // 设置窗体可见
    		// 设置窗体关闭方式
    		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    	}
    	public static void main(String[] args) {
    		new Demo();
    	}
    }
    

    返回结果:
     

    GridLayout网格布局管理器

    网格布局管理器将容器划分为网格,所以组件可以按行或列进行排列,在网格布局管理器中,每一个组件的大小都相同,并且网格的个数由网络的行数和列数决定,比如一个2行2列的网格能产生4个大小相等的网格,组件从网格的左上角开始,按照从左到右、从上到下的顺序加入到网格中,而且每一个组件都会填满整个网格,改变窗体的大小、组件的大小也会随之改变

    网格布局管理器主要有以下两个常用的构造方法:

    • public GridLayout(int rows,int columns)
    • public GridLayout(int rows,int columns,int horizGap,int vertGap)

    在上述构造方法中,rowscolumns参数代表网格的行数与列数,这两个参数只有一个参数可以为0,代表一行或一列可以排列任意多个组件,参数horizGap与vertGap指定网格之间的间距,其中horizGap参数指定网格之间的水平间距vertGap参数指定网格之间的垂直间距

    下面来看一个在应该程序中使用网格布局管理器的实例,代码如下:

    
    import java.awt.Container;
    import java.awt.GridLayout;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.WindowConstants;
    
    public class Demo extends JFrame {
    	public Demo() {
    		Container c = getContentPane();
    		/*
    		 * 设置容器使用网格布局管理器,设置7行3列的网格。
    		 * 组件间水平间距为5像素,垂直间距为5像素
    		 */
    		setLayout(new GridLayout(7, 3, 5, 5));
    		for (int i = 0; i <= 20; i++) {
    			c.add(new JButton("button" + i));		 //循环添加按钮
    		}
    		setSize(300, 300);
    		setTitle("这是一个使用网格布局管理器的窗体");
    		setVisible(true);
    		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    	}
    	public static void main(String[] args) {
    		new Demo();
    	}
    }
    

    返回结果:

    从上面实例可以看出,尝试改变窗体大小,将发现其中的组件大小也会发生相应的改变。

    展开全文
  • Java中提供了几种布局管理器

    千次阅读 2021-03-05 21:16:46
    近日,很多网友都在关注Java中提供了几种布局管理器这个话题,那么Java中提供了几种布局...答案1:java中布局管理器有几种 都有什么怎么才6种呢?10多20种,你自已去JAVA的API里面查看吧,java.awt包中大约有Flow...

    近日,很多网友都在关注Java中提供了几种布局管理器这个话题,那么Java中提供了几种布局管理器具体情况是怎么样的呢?Java中提供了几种布局管理器的相关信息有哪些?下面的内容是小编为大家找到的关于Java中提供了几种布局管理器的最新信息,大家一起来看看吧!

    答案1:java中布局管理器有几种 都有什么

    怎么才6种呢?10多20种,你自已去JAVA的API里面查看吧,

    java.awt包中大约有

    FlowLayout 流式布局

    BorderLayout 边框式布局

    GridLayout 网格布局

    CardLayout 卡片布局

    GridBagLayout 复杂的网格布局

    javax.swing包中大约有如下布局

    BoxLayout 盒式布局

    OverlayLayout重叠布局

    ScrollPaneLayout类JScrollPane使用的布局管理器

    ViewportLayout类JViewport使用的布局管理器

    答案2:JAVA中,Frame和Panel默认的布局管理器分别是什么类型?

    JAVA中,Framel默认的布局管理器是BorderLayout类型,Panel默认的布局管理器是FlowLayout类型。

    FlowLayout是Panel 和 Applet 的默认布局管理器。在该布局管理器中,组件在容器中按照从上到下,从左到右的顺序进行排列,行满后则换行。

    BorderLayout是Window、Frame和Dialog的默认布局管理器,其将容器分成North、South、East、West和Center 5个区域,每个区域只能放置一个组件。使用BorderLayout时,如果容器大小发生变换,组件的相对位置不变。

    877d2371379a72ed528f9007681c162c.png

    扩展资料:

    其它相关的布局管理器:

    1、网格布局管理器(GridLayout):

    GridLayout 可使容器中的各个组件呈网格状布局,平局占据容器的空间,即使容器的大小发生变化,每个组件还是平均占据容器的空间。和FlowLayout一样,GridLayout也是按照从上到下,从左到右的规律进行排列的。

    2、卡片布局管理器(CardLayout):

    CardLayout能够帮助用户处理两个乃至跟多的成员共享同一显示空间。它把容器分成许多层,每层的显示空间占据整个容器的大小,并且每层之允许反之一个组件,可以通过Panel来实现每层复杂的用户界面。

    答案3:Java的AWT包与Swing包提供了那些布局管理器

    布局管理器分为6种:

    FlowLayout 流式布局管理器

    GridLayout 网格布局管理器

    GridBagLayout 网格包布局管理器

    BorderLayout 边界布局管理器

    CardLayout 卡片布局管理器

    BoxLayout

    这个是Swing与AWT新增加的。

    答案4:布局管理器的作用是什么?JAVA提供了哪几种布局管理器?

    控制组件在窗体中的排列顺序和位置,常用的布局管理器有:

    FlowLayout 流式布局

    BorderLayout 边框式布局

    GridLayout 网格布局

    CardLayout 卡片布局

    GridBagLayout 复杂的网格布局

    还有其他的布局管理器 具体请看API

    答案5:java中,布局管理器的含义和基本特点是什么

    JAVA是与平台无关的,什么叫与平台无关呢,就是应用程序的界面的大小,位置与硬件没关系,与平台无关就是说你不能通过setSize()这样的方法去设置窗体中组件的大小。由此问题产生了。

    当一个窗体中有文本控件,又有标签,还有按钮,这时你怎么控制它们在窗体中的排列顺序和位置呢,JAVA定义了布局管理器来处理这个问题

    这就是布局管理器的作用

    展开全文
  • Java GUI编程的几种常用布局管理器

    千次阅读 2017-08-24 11:59:48
    Java GUI编程的几种常用布局管理器 本人是一个大二的学生。因为最近做JavaGUI界面的需求,因此重新开始熟悉JavaGUI的各种控件和布局。然后以次博文为笔记,总结、完善以及发表最近学习的一些技术要点。希望各位...

    Java GUI编程的几种常用布局管理器

    本人是一个大二的学生。因为最近有做JavaGUI界面的需求,因此重新开始熟悉JavaGUI的各种控件和布局。然后以次博文为笔记,总结、完善以及发表最近学习的一些技术要点。希望各位支持和指正。

    目录

    下面我们来介绍一下Java的几种常用的布局管理器:

    一、BorderLayout默认布局管理器

    这个布局管理器,如果不指定位置会默认把控件放到Center,而且会不断地覆盖。具体效果和代码如下:

    public class SystemGUI extends JFrame{
    
        public SystemGUI(String sTitle){
            super(sTitle);
    
            setSize(800,600);
            Container c= getContentPane();
            c.setBackground(Color.GRAY);
    
            JPanel pan =new JPanel();
            pan.setBackground(Color.WHITE);
            pan.setSize(800,600);
            add(pan);
        }
        public static void main(String[] args) {
            SystemGUI frm = new SystemGUI("Test");
            frm.add(BorderLayout.NORTH,new JButton("North"));
            frm.add(BorderLayout.SOUTH,new JButton("South"));
            frm.add(BorderLayout.WEST,new JButton("West"));
            frm.add(BorderLayout.EAST,new JButton("East"));
            frm.add(BorderLayout.CENTER,new JButton("Center"));
            ze(500,100);
            frm.setVisible(true);
    
        }
    
    }

    ]

    二、FlowLayout布局管理器

    这个布局管理器,效果稍微比默认布局管理器好一点,因为它能保证控件不会重叠,而且会按照你添加的顺序排列到容器里面。但是缺点是,当你拉动面板改变大小,那

    public class SystemGUI extends JFrame{
    
        public SystemGUI(String sTitle){
            super(sTitle);
    
            setSize(800,600);
            Container c= getContentPane();
            c.setBackground(Color.GRAY);
    
    
            JPanel pan =new JPanel();
            pan.setBackground(Color.WHITE);
            pan.setSize(800,600);
            add(pan);
        }
        public static void main(String[] args) {
            SystemGUI frm = new SystemGUI("Test");
            frm.setLayout(new FlowLayout()); 
            for(int i = 1; i <=5; i++)
               frm.add(new JButton("Button " + i));
               frm.setVisible(true);
               frm.setSize(500,100);
            frm.setVisible(true);
    
        }
    
    }

    拉动之前
    拉动之后

    三、GridLayout布局管理器

    表格布局能帮我们把空间有序整齐地放到我们的容器里面,并且不会像FlowLayout那样,拉动窗口,控件的位置也会变化。

    public class SystemGUI extends JFrame{
        public SystemGUI(String sTitle){
            super(sTitle);
    
            setSize(800,600);
            Container c= getContentPane();
            c.setBackground(Color.GRAY);
            //c.setLayout(null);
    
    
            JPanel pan =new JPanel();
            pan.setBackground(Color.WHITE);
            pan.setSize(800,600);
            add(pan);
        }
        public static void main(String[] args) {
            SystemGUI frm = new SystemGUI("Test");
            frm.setLayout(new GridLayout(3,2));   //3行2列的表格布局
            for(int i = 0; i < 7; i++)
              frm.add(new JButton("Button " + i));   
              frm.setVisible(true);
              frm.setSize(500,300);
    
            frm.setVisible(true);
    
        }
    
    }

    拉动前

    拉动后

    四、GridBagLayout布局管理器

    这个包位于java.awt包中,这是最复杂的布局管理器。在此布局中,组件大小不必相同。要使用该布局管理器还要有一个辅助类GridBagConstraints。其重要属性包括gridx,gridy,gridwidth,gridheight,fill,anchor,weightx,weighty。这些值会相互影响。

    gridx,gridy——组件在网格中的相对位置,类似与直角坐标系里面的位置分布;

    gridwidth,gridheight——设置组件在表格当中的大小的,占用几行几列,默认值为1.

    weightx和weighty参数可以设置当你的窗口被拉大(或拉小)的时候,组件所按照什么比例进行缩放,数字越大,组件变化的会越大;

    anchor ——当组件小于其显示的区域,那么该显示到何处。注意,GridBagconstraints。anchor在GridBagConstraints.fill=GridBagConstraints
    .NONE(不打算填充)时才生效。

    fill——当组件所处的动态表格里面有空余的位置的时候,组件将按什么方向填充,这个参数在界面中比较关键一点;
    这里容我偷一下懒,转载一段代码,原网页连接在参考文献【1】:

    import java.awt.*; 
    import javax.swing.*; 
    
    public class GridBagDemo extends JFrame { 
    public static void main(String args[]) { 
    GridBagDemo demo = new GridBagDemo(); 
    } 
    
    public GridBagDemo() { 
    init(); 
    this.setSize(600,600); 
    this.setVisible(true); 
    } 
    public void init() { 
    j1 = new JButton("打开"); 
    j2 = new JButton("保存"); 
    j3 = new JButton("另存为"); 
    j4 = new JPanel(); 
    String[] str = { "java笔记", "C#笔记", "HTML5笔记" }; 
    j5 = new JComboBox(str); 
    j6 = new JTextField(); 
    j7 = new JButton("清空"); 
    j8 = new JList(str); 
    j9 = new JTextArea(); 
         j9.setBackground(Color.PINK);//为了看出效果,设置了颜色 
    GridBagLayout layout = new GridBagLayout(); 
    this.setLayout(layout); 
    this.add(j1);//把组件添加进jframe 
    this.add(j2); 
    this.add(j3); 
    this.add(j4); 
    this.add(j5); 
    this.add(j6); 
    this.add(j7); 
    this.add(j8); 
    this.add(j9); 
    GridBagConstraints s= new GridBagConstraints();//定义一个GridBagConstraints, 
    //是用来控制添加进的组件的显示位置 
    s.fill = GridBagConstraints.BOTH; 
    //该方法是为了设置如果组件所在的区域比组件本身要大时的显示情况 
    //NONE:不调整组件大小。 
    //HORIZONTAL:加宽组件,使它在水平方向上填满其显示区域,但是不改变高度。 
    //VERTICAL:加高组件,使它在垂直方向上填满其显示区域,但是不改变宽度。 
    //BOTH:使组件完全填满其显示区域。 
    s.gridwidth=1;//该方法是设置组件水平所占用的格子数,如果为0,就说明该组件是该行的最后一个 
    s.weightx = 0;//该方法设置组件水平的拉伸幅度,如果为0就说明不拉伸,不为0就随着窗口增大进行拉伸,0到1之间 
    s.weighty=0;//该方法设置组件垂直的拉伸幅度,如果为0就说明不拉伸,不为0就随着窗口增大进行拉伸,0到1之间 
    layout.setConstraints(j1, s);//设置组件 
    s.gridwidth=1; 
    s.weightx = 0; 
    s.weighty=0; 
    layout.setConstraints(j2, s); 
    s.gridwidth=1; 
    s.weightx = 0; 
    s.weighty=0; 
    layout.setConstraints(j3, s); 
    s.gridwidth=0;//该方法是设置组件水平所占用的格子数,如果为0,就说明该组件是该行的最后一个 
    s.weightx = 0;//不能为1,j4是占了4个格,并且可以横向拉伸, 
    //但是如果为1,后面行的列的格也会跟着拉伸,导致j7所在的列也可以拉伸 
    //所以应该是跟着j6进行拉伸 
    s.weighty=0; 
    layout.setConstraints(j4, s) 
    ;s.gridwidth=2; 
    s.weightx = 0; 
    s.weighty=0; 
    layout.setConstraints(j5, s); 
    ;s.gridwidth=4; 
    s.weightx = 1; 
    s.weighty=0; 
    layout.setConstraints(j6, s); 
    ;s.gridwidth=0; 
    s.weightx = 0; 
    s.weighty=0; 
    layout.setConstraints(j7, s); 
    ;s.gridwidth=2; 
    s.weightx = 0; 
    s.weighty=1; 
    layout.setConstraints(j8, s); 
    ;s.gridwidth=5; 
    s.weightx = 0; 
    s.weighty=1; 
    layout.setConstraints(j9, s); 
    } 
    JButton j1; 
    JButton j2; 
    JButton j3; 
    JPanel j4; 
    JComboBox j5; 
    JTextField j6; 
    JButton j7; 
    JList j8; 
    JTextArea j9; 
    }

    小案例

    参考文献:
    1、Java最重要的布局管理器
    2、Java程序设计教程【清华大学出版社】

    展开全文
  • QT 常用布局管理器

    千次阅读 2019-09-07 00:03:24
    QT主要布局管理器分类 QHBoxLayout(水平布局) 把子窗口从左到右排列在一个水平行上。 QWidget *window = new QWidget; QPushButton *button1 = new QPushButton("One"); QPushButton *button2 = new ...

    Qt布局管理详解

    详解 QT 布局管理界面 图文并茂

    QT主要布局管理器分类

    QHBoxLayout(水平布局)

    把子窗口从左到右排列在一个水平行上。

    QWidget *window = new QWidget;
    QPushButton *button1 = new QPushButton("One");
    QPushButton *button2 = new QPushButton("Two");
    QPushButton *button3 = new QPushButton("Three");
    QPushButton *button4 = new QPushButton("Four");
    QPushButton *button5 = new QPushButton("Five");
    
    QHBoxLayout *layout = new QHBoxLayout;
    layout->addWidget(button1);
    layout->addWidget(button2);
    layout->addWidget(button3);
    layout->addWidget(button4);
    layout->addWidget(button5);
    
    window->setLayout(layout);
    window->show();

    运行结果:

    QVBoxLayout(垂直布局)

    把子窗口从上到下排列在一个垂直列上。

    QWidget *window = new QWidget;
    QPushButton *button1 = new QPushButton("One");
    QPushButton *button2 = new QPushButton("Two");
    QPushButton *button3 = new QPushButton("Three");
    QPushButton *button4 = new QPushButton("Four");
    QPushButton *button5 = new QPushButton("Five");
    
    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(button1);
    layout->addWidget(button2);
    layout->addWidget(button3);
    layout->addWidget(button4);
    layout->addWidget(button5);
    
    window->setLayout(layout);
    window->show();

    运行结果:

    QGridLayout(表格布局)

    把子窗口排列在一个二维的网格中,窗口可占据多个单元格。
    QGridLayout::addWidget()语法:
    layout->addWidget(widget, row, column, rowSpan, columnSpan);

    widget:为插入到这个布局的子控件;
    (row,column)为控件占据的左上角单元格位置;
    rowSpan是控件占据的行数,colunmSpan是控件占据的列数。
    (rowSpan和colunmSpan默认值为1)

    QWidget *window = new QWidget;
    QPushButton *button1 = new QPushButton("One");
    QPushButton *button2 = new QPushButton("Two");
    QPushButton *button3 = new QPushButton("Three");
    QPushButton *button4 = new QPushButton("Four");
    QPushButton *button5 = new QPushButton("Five");
    
    QGridLayout *layout = new QGridLayout;
    layout->addWidget(button1, 0, 0);
    layout->addWidget(button2, 0, 1);
    layout->addWidget(button3, 1, 0, 1, 2);
    layout->addWidget(button4, 2, 0);
    layout->addWidget(button5, 2, 1);
    
    window->setLayout(layout);
    window->show();

    运行结果:

    Stacked Layouts(分组布局)

    QStackedLayout类把子控件进行分组或者分页,一次只显示一组或者一页,隐藏其他组或者页上的控件。
    接口:

    int addWidget(QWidget * widget)
    添加页面,并返回页面对应的索引

    int count() const
    获取页面数量

    int currentIndex() const
    获取当前页面的索引

    QWidget * currentWidget() const
    获取当前页面

    int indexOf(QWidget * widget) const
    获取QWidget页面所对应的索引

    int insertWidget(int index, QWidget * widget)
    在索引index位置添加页面

    void removeWidget(QWidget * widget)
    移除QWidget页面,并没有被删除,只是从布局中移动,从而被隐藏。

    QWidget * widget(int index) const
    获取索引index所对应的页面

    Form Layout布局设置(表格布局)

    专门用于管理输入控件和与之相关的标签等表单布局,QFormLayout固定为两列布局,并针对表单做了建模,配套了一堆方便使用的函数。网格布局器的基本单元是单元格,而表单布局器的基本单元是行。表单布局器是高度建模并封装的,它没有 addWidget()和 addLayout()之类的函数,它只有addRow()函数。表单布局器中一行的空间可以由多个控件占据,也可以由一个控件占据。

    QSpliter分割器的作用

    分裂器 QSplitter 是一个实体功能控件,它的基类是 QFrame,QFrame 基类正是 QWidget。QSplitter 可以独立存在,可以作为父窗口容纳多个子控件,分裂器会完全拥有内部的子控件。在 Qt 设计师或 QtCreator 设计模式左边 Widget Box 里面没有分裂器可以拖动,使用分裂器的方式是:选中已有的控件,然后点击上面工具栏的水平分裂器或垂直分裂器按钮。比如上图是将三个丰富文本编辑器作为一个水平分裂器排布 的。分裂器内每个控件都有一个手柄 Handle,水平分裂器内控件的手柄在左边,垂直分裂器内控件的手柄在控件上方。第 0 个控件的手柄是永久隐藏的,分裂器自身占据的大矩形四个边界线通常不能拖动拉大,只能拖动控件之间的手柄,比如上图的手柄 1 和 手柄 2 。分裂器整体的尺寸不是用户控制的,而在分裂器内部的控件尺寸可以让用户手工拖动手柄来控制。在程序运行时,水平分裂器内各个控件的宽度、垂直分裂器内部各个控件的高度, 一般都是用户拖动手柄控制,这是分裂器和布局器最大的不同。

     

    QT中有三种方式对窗体上的控件进行布局管理:绝对位置定位(absolute positioning),手工布局(manual layout),布局管理器(layout managers)

    绝对位置定位(控件布局是固定位置,没有自适应功能)

    手工布局给出控件的绝对位置,但是他们的尺寸根据窗口的大小确定,可以通过重写窗体控件的resizeEvent()实现对子控件的大小设置。

    布局管理器,运用QHBoxLayout、QVBoxLayout、QGridLayout、QFormLayout、QStackLayout等布局。

     

     

     

    展开全文
  • Java三大常用布局管理器

    万次阅读 2015-08-21 19:33:10
    三大常用布局管理器:BorderLayout,FlowLayout,GridLayout,以及计算器的案例
  • QT主要布局管理器分类QHBoxLayout(水平布局)把子窗口从左到右排列在一个水平行上。 样例代码:QWidget *window = new QWidget; QPushButton *button1 = new QPushButton("One"); QPushButton *button2 = new ...
  • 上次为大家介绍过在java...首先我们需要了解的是,java为我们提供了几个常用布局管理器类,比如说:FlowLayout、BorderLayout、GridLayout、GridBagLayout等。接下来分别为大家介绍一下。一、java.awt FlowLayout(...
  • java 常用布局管理器

    2013-03-28 16:54:48
    java 常用布局管理器
  • 韩顺平java图形界面编程之常用组件、布局管理器
  • Java AWT 布局管理器

    千次阅读 2020-03-16 05:31:38
    本文介绍了 Java AWT 中布局管理器的相关内容。。。
  • 主要介绍了Java Swing组件布局管理器之FlowLayout(流式布局),结合实例形式分析了Swing组件布局管理器FlowLayout流式布局的常用方法及相关使用技巧,需要的朋友可以参考下
  • FlowLayout——流式布局管理器:可以让控件从左到依次排序,排满一行就换下一行,行高是由控件高度决定的。FlowLayout是所以Panel类型容器的默认布局,默认情况下是居中(FlowLayout.CENTER)显示。 GridBagLayou...
  • Qt中的布局管理器

    千次阅读 2017-09-12 20:11:18
    Qt中窗口组件的基类QWidget两组重载函数用于实现窗口组件的绝对定位://定位窗口的坐标 void move(const QPoint &) void move(int x, int y) //定义窗口占据的大小 void resize(const QSize &) void resize(int w,...
  • 布局管理器

    千次阅读 2018-12-01 20:55:04
    绝对布局 绝对布局,顾名思义,就是硬性指定组件在容器中的位置和大小,可以使用绝对坐标的方式来指定组件的位置。...流布局管理器在整个容器中的布局正如其名,像“流”一样从左到右摆放组件,直到占据了这一行...
  • android布局管理器代码

    2014-02-13 10:46:54
    对于android常用布局管理器的代码练习,主要以xml文件为主,也部分的Activity的操作!
  • 图形用户界面(gui): 用户与程序交互的窗口。 AWT(库文件)----&gt;swing------&gt;swt(库文件)-----&...JFace(图形包) ide(集成开发环境)-----VS、eclipse等 swing组件: 边界布局管理器 ...
  • Android的6种布局管理器总结

    万次阅读 多人点赞 2015-05-26 17:31:30
    Android中的6大布局管理器:1). LinearLayout 线性布局管理器、2). TableLayout 表格布局管理器、3). RelativeLayout 相对布局管理器、4). FrameLayout 帧布局管理器、5). AbsoulteLayout 绝对布局管理器、 6)...
  •  Java中的布局管理器经常用到的也就是三种(流布局管理器FlowLayout、边界布局管理器BorderLayout、网格布局管理器GridLayout),复杂的界面采用单一的布局管理器完成比较困难,一般(流布局管理器、边界布局管理器...
  • Java界面常用布局管理器

    万次阅读 2016-09-18 19:35:21
    这是第一次在博客园里面写博客,是有关JAVA页面设计当中的布局管理器,可能大多数人会选择使用 NetBeans 或者是Eclipse 的组件来实现可视化拖拽组件来达到自己页面设计布局,因为是第一次做界面,总结一下,以供...
  • AWT中的几种布局管理器

    千次阅读 2013-09-04 15:38:37
    AWT中常用布局管理器有如下几个:FlowLayout, BorderLayout, GridLayout, GridBagLayout, CardLayout,Swing还提供了一个BoxLayout。 FlowLayout从左向右排列所有组件,遇到边界就会折回下一行从新开始。它有三个...
  • 卡片布局还有其他的参构造函数! * 3.卡片布局与其他布局稍微有所不同,需要调用这个布局对象进行互动! * 步骤: * 1.设置主窗体为网格布局,上下分开,其实用边界布局也可以的! * 2.创建两个面板jpA,jpB * 3....
  • QT中的布局管理器

    千次阅读 2018-08-05 13:55:16
    1、布局管理器 2、QBoxLayout和QGridLayout 1、QBoxLayout 2、QGridLayout 3、小结 3、QFormLayout和QStackedLayout 1、QFormLayout 2、QStackedLayout 3、小结 4、布局管理综合实例 1、需求分析 2、编程...
  • 线性布局(LinearLayout):子控件排列成一行多列或者一列多行的形式,应该是应用程序中最常用布局方式,它提供了控件水平或者垂直排列的模型,同时我们可通过设置子控件的weight布局参数控制各个控
  • 在Swing中,每个组件在容器中都一个具体的位置...Swing提供的常用布局管理器包括流布局管理、边界布局管理和网格布局管理。本文将探讨Swing中常用的布局管理。 一、边界布局管理 在默认情况下,Swing组件的
  • 用户界面设计之布局管理器

    千次阅读 2016-08-17 23:12:07
    Android中提供了线性布局管理器(LinearLayout)、表格布局管理器(TableLayout)、相对布局管理器RelativeLayout)、帧布局管理器(FrameLayout)和绝对布局管理器(AbsoluteLayout)5种,其中绝对布局管理器在Android2.0...
  • Java布局管理器组件

    千次阅读 多人点赞 2016-05-09 19:25:26
    Java布局管理器组件所谓布局管理器,...目前开发中,常用布局管理器有BorderKayout、FlowLayout、GridLayout、GridBagLayout、CardLayout、BoxLayout、SpringLayout、GroupLayout等: 布局管理器种类 BorderLayout F
  • 目录 1.Java中的GUI ...(2)流布局管理器FlowLayout (3)边框布局管理器BorderLayout (3)网格布局管理器GridLayout 4.事件处理 (1)事件处理的原理 (2)常用监听 5.监听的多种实现...
  • java常用组件以及布局管理器

    千次阅读 2015-01-29 20:48:55
    Swing组件按功能来分,可以分为如下几类: Ø 顶层容器:JFrame、JApplet、JDialog和...Ø 特殊容器:在用户界面上特殊作用的中间容器,如:JInternalFrame、JRootPane、JLayeredPane和JDestopPane Ø 基本组件:JB
  • LinearLayout是Android控件中的线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的子控件及引用的布局容器。某些控件超过边界时,将缺失或消失。
  • 本文主要讲解Swing程序设计中容器、面板及四大布局管理器的详细使用、包括实例程序讲解、使用注意及使用技巧分享、敬请阅读! 目录 什么是容器? 什么是面板? JPanel面板 JScrollPane面板 什么是布局管理器...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 108,223
精华内容 43,289
关键字:

常用的布局管理器有哪些