zoukankan      html  css  js  c++  java
  • 布局管理器

    什么是布局管理器?你一个frame里面一般有几个panel对吧,你如果要自己调它们的位置,大小的话会比较麻烦,而且当窗口变大的时候它里面的panel又不会跟着变大,就很烦恼。所以,我们有这个东西,布局管理器,相当于一个小管家,你只要把panel啊,component什么的扔进去,他自己会帮你排好它的。

    封装布局管理器的类在这个LayoutManager接口里面,不同的布局管理器有不同的布局风格。

    首先看个FlowLayout:

    这个是panel类的默认布局管理器,就是你不指定panel的布局管理器的话,就默认是这个。 

    例子:

    import java.awt.*;
    
    public class TestFlowLayout {
        public static void main(String[] args) {
            Frame f = new Frame("lalaalla FlowLayout");
            Button b1 = new Button("打开");
            Button b2 = new Button("放屁");
            Button b3 = new Button("关闭");
            f.setLayout(new FlowLayout());//参数要是实现了接口LayoutManager的类
            f.add(b1);
            f.add(b2);
            f.add(b3);
            f.setBounds(500,500,500,500);
            f.setBackground(Color.GREEN);
            f.setVisible(true);
        }
    }

    FlowLayout l = new FlowLayout(FlowLayout.LEGHT,20,40);第一个参数是对齐方式,第二个是水平间距(零件之间),第三个是垂直间距。

    再看另一种管理器,BorderLayout,它是frame类的默认layout管理器。

    代码:

    提一下,这些BorderLayout.NORTH什么的是int类型的.

    GridLayout,grid是小格的意思

    代码:

    注意这里有个f.pack(),我们平时都是这里用f.setSize()来设定大小,pack()就是刚好在外面包它一圈.

    注意,这几种布局管理器你既可以设在frame里面也可以设在panel里面,而panel本身又可以加自在frame里面。 

     

  • 相关阅读:
    [题解?]luogu_P1415拆分数列(dp(不懂
    [题解]luogu_P1070道路游戏(堆dp
    [题解]luogu_P2577午餐(贪心dp
    [题解]luogu_P2157学校食堂(状压dp
    [模板]线段树合并
    [题解]宝藏(状压
    [题解]NOI2010超级钢琴
    [题解]luogu_P2161_会场预约(线段树颜色相关
    【总结】LCA的4种求法
    SRM517-600加强版(DP)
  • 原文地址:https://www.cnblogs.com/wangshen31/p/6892053.html
Copyright © 2011-2022 走看看