java布局管理器

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

JAVA的界面布局原理:因为Java是跨平台语言,使用绝对坐标显然会导致问题,即在不同平台、不同分辨率下的显示效果不一样。Java 为了实现跨平台的特性并且获得动态的布局效果,Java将容器内的所有组件安排给一个“布局管理器”负责管理,如:排列顺序,组件的大小,位置等,当窗口移动或调整大小后组件如何变化等功能授权给对应的容器布局管理器来管理,不同的布局管理器使用不同算法和策略,容器可以通过选择不同的布局管理器来决定布局。  Java中一共有6种布局管理器,通过使用6种布局管理器组合,能够设计出复杂的界面,而且在不同操作系统平台上都能够有一致的显示界面。6种布局管理器分别是BorderLayout、BoxLayout、FlowLayout、GirdBagLayout、GirdLayout和 CardLayout。其中CardLayout必须和其他5种配合使用,不是特别常用的。每种界面管理器各司其职,都有各自的作用。
 
 
CardLayout(卡式布局) 
        CardLayout布局管理器能够帮助用户处理两个以至更多的成员共享同一显示空间,它把容器分成许多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一个组件,当然每层都可以利用Panel来实现复杂的用户界面.布局管理器(CardLayout)就象一副叠得整整齐齐的扑克牌一样,有54张牌,但是你只能看见最上面的一张牌,每一张牌就相当于布局管理器中的每一层.其实现过程如下: 

        首先,定义面板,为个个面板设置不同的布局,并根据需要在每个面板中放置组件: 
           panelOne.setLayout(new FlowLayout); 
           panelTwo.setLayout(new GridLayout(2,1)); 
        再设置主面板. 
           CardLayout card = new CardLayout(); 
           panelMain.setLayout(card); 
         下一步将开始准备好的面板添加到主面板 
           panelMain.add("red panel",panelOne); 
           panelMain.add("blue panel",panelOne); 
         add()方法带有两个参数,第一个为String类型用来表示面板标题,第二个为Panel对象名称. 
          完成以上步骤以后,必须给用户提供在卡片之间进行选择的方法.一个常用的方法是每张卡片都包含一个按钮.通常用来控制显示哪张面板.actionListener被添加到按钮..actionPerformed()方法可定义显示哪张卡片.: 
           card.next(panelMain);           //下一个 
           card.previous(panelMain);       //前一个 
           card.first(panelMain);          //第一个 
           card.last(panelMain);           //最后一个  
           card.show(panelMain,"red panel"); //特定面板 


BorderLayout布局管理器:BorderLayout 也是一种非常简单的布局策略,它把容器内的空间简单地划分为东、西、南、北、中无个区域,没加入一个组件都应该指明把这个组件加在哪个区域中。 BorderLayout是顶层容器( JFrame, JDialog, 和 JApplet )的默认布局管理器。有五个位置组件:

 这个界面最多只能显示5个控件。加入控件的时候,可以指定加入的方位,默认的情况是加入到中间。在BorderLayout中整理尺寸是,四周的控件会被调整,调整会按照布局管理器的内部规则计算出应该占多少位置,然后中间的组件会占去剩下的空间。

BorderLayout 是Window,Frame和Dialog的缺省布局管理器. BorderLayout布局管理器把容器分成5个区域:North,South,East,West和Center,每个区域只能放置一个组件.在使用 BorderLayout的时候,如果容器的大小发生变化,其变化规律为:组件的相对位置不变,大小发生变化.例如容器变高了,则North、South 区域不变,West、Center、East区域变高;如果容器变宽了,West、East区域不变,North、Center、South区域变宽.不一定所有的区域都有组件,如果四周的区域(West、East、North、South区域)没有组件,则由Center区域去补充,但是如果 Center区域没有组件,则保持空白. 
       示例: 
    import java.awt.*; 
    public class buttonDir{ 
     public static void main(String args[]){ 
      Frame f = new Frame("BorderLayout"); 
      f.setLayout(new BorderLayout()); 
      f.add("North", new Button("North"); 
      //第一个参数表示把按钮添加到容器的North区域 
      f.add("South", new Button("South"); 
      //第一个参数表示把按钮添加到容器的South区域 
      f.add("East", new Button("East");  
      //第一个参数表示把按钮添加到容器的East区域 
      f.add("West", new Button("West"); 
      //第一个参数表示把按钮添加到容器的West区域 
      f.add("Center", new Button("Center"); 
      //第一个参数表示把按钮添加到容器的Center区域 
      f.setSize(200,200); 
      f.setVisible(true);  
     } 
    }

 
 
 FlowLayout布局管理器:流式布局管理器把容器看成一个行集,好象平时在一张纸上写字一样,一行写满就换下一行。行高是用一行中的控件高度决定的。FlowLayout是所有 JApplet/JApplet的默认布局。在生成流式布局时能够指定显示的对齐方式,默认情况下是居中(FlowLayout.CENTER)。在下面的示例中,可以用如下语句指定居左
  JPanel  panel= new JPanel(new FlowLayout(FlowLayout.LEFT)));
此为小应用程序(Applet)和面板(Panel)的缺省布局管理器,组件从左上角开始,按从左至右的方式排列.其构造函数为: 
       FlowLayout()  //生成一个默认的流式布局,组件在容器里居中,每个组件之间留下5个像素的距离. 
       FlowLayout(int alinment) //可以设定每行组件的对齐方式. 
       FlowLayout(int alignment,int horz,int vert) //设定对齐方式并设定组件水平和垂直的距离. 
      当容器的大小发生变化时,用FlowLayout管理的组件会发生变化,其变化规律是:组件的大小不变,但是相对位置会发生变化. 

 
  GirdLayout布局管理器:GridLayout 将成员按网格型排列,每个成员尽可能地占据网格的空间,每个网格也同样尽可能地占据空间,从而各个成员按一定的大小比例放置。如果你改变大小, GridLayout将相应地改变每个网格的大小,以使各个网格尽可能地大,占据Container容器全部的空间。

基本布局策略是把容器的空间划分成若干行乘若干列的网格区域,组件就位于这些划分出来的小区域中,所有的区域大小一样。组件按从左到右,从上到下的方法加入。

用构造函数划分出网格的行数和列数,
    new GridLayout(行数,列数);

构造函数里的行数和列数能够有一个为零,但是不能都为零。当容器里增加控件时候,容器内将向0的那个方向增长。例如,如果是如下语句:

   GridLayout layout= new GridLayout(0,1);

在增加控件时,会保持一个列的情况下,不断把行数增长。

Java 布局管理器 Java图形用户你界面中,布局管理器负责容器内组件的排列顺序、大小、位置,以及当窗口移动或调整后组件如何变化等。Java平台提供了7种布局管理器:FlowLayout、BorderLayout、GridLayout、BoxLayout、CardLayout、SpringLayout、GridBagLayout和SpringLayout。 阅读详情

相关推荐

JAVA】-- Java五大常用布局管理器(BorderLayout、FlowLayout、GridLayout、GridBagLayout、CardLayout)

在Swing组件中,有JFrame和JDialog这样的顶级容器(也叫窗口),顶级容器不能放置在其他容器中,可完成窗口大小化等基本功能。也有JPanel这样的面板组件,比较复杂的布局,需要布局管理器的组合使用,面板组件可以将多个布局管理器结合使用,组件在容器中的位置和尺寸由布局管理器决定。下面将要说的布局管理器就是具体的布局,一个界面只能有一个顶级容器,可以有多个面板组件,面板组件上可以使用多个布局管理器。Swing提供了八种布局管理器:BorderLayout(边界布局管理器)、BoxLayout(箱式布

个人博客 6765

java常见的布局管理器

每个区域至多放置一个组件,如果放置多个组件,最后一个放入的组件会覆盖前面的组件。如果要在一个区域中放置多个组件时,必须先在该区域放置一个中间层容器。它把容器中的所有组件处理成一系列的卡片,并摞起来形成一幅“扑克牌”,这些卡片(组件)大小相同、充满整个容器,同一时刻只能显示一个卡片(就像最前面那张扑克牌),显示的卡片可以切换。常见的布局管理器有:FlowLayout(流式布局管理器)、BorderLayout(边界布局管理器)、GridLayout(网格布局管理器)、CardLayout(卡片布局管理器)。

Dreams_are_also的博客 1330

Java代码中设置控件高度和宽度按比例自适应屏幕

Java代码中创建控件的时候设置的高度默认单位为px,这样会使控件在不同的手机上显示出不同的效果,所以我们最好是按屏幕比例来设置控件的宽度和高度。 其实我的原理很简单: 首先在Activity启动时我们需要获得屏幕的宽度和高度; DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().

月色无痕的专栏 8417

Java图形化界面---AWT布局管理器

Java如何开发出图形化的界面?本文主要讲解的是Java下的GUI编程的基础知识,简单易懂。布局管理器,顾名思义就是帮助我们在布局上面起到作用的管理器,可以帮助我们设定成我们想要的排列方式,这里我介绍的是AWT编程下的

gaoqiandr的博客 2274

Java常用的布局管理器

目录一,布局管理器作用二,流式布局管理器效果用法三,边界布局管理器效果用法四,流式布局管理器与边界布局管理器的综合应用效果用法在Java可视化编程中,我们往往会用到往窗体中添加部件的情况,此时布局管理器显得非常重要,今天我们来仔细讲讲流式布局管理器和边界布局管理器这两种布局管理器:在开始之前,我们需要先import Java中的awt包和swing包完成相关操作,像这样: 一,布局管理器作用 Java可视化编程的内容中,按钮和文本框等等组件尤为重要,在添加这些组件进入窗体时,如果不用布局管理器,我们将

Biaobiaone的博客 2330

Java布局管理器组件

Java布局管理器组件所谓布局管理器,就是为容器内的组件提供若干布局策略,每个容器都拥有某种默认布局管理器,用于负责其内部组件的排列。目前开发中,常用的布局管理器有BorderKayout、FlowLayout、GridLayout、GridBagLayout、CardLayout、BoxLayout、SpringLayout、GroupLayout等: 布局管理器种类 BorderLayout F

凌小星的专栏 9782

Java布局管理器

   Java的GUI界面设计中,布局控制是相当重要的一个环节。将一个组件加入容器中时,布局控制器决定了所加入的组件的大小和位置。如果将一个容器的布局管理器设为null,即用方法setLayout(null),则要设定容器中每个对象的大小和位置。而布局管理器能自动设定容器中组件的大小和位置,当容器改变大小时,布局管理器能自动改变其中组件的大小和布局。   java.awt包共定义了五种

Wanghaishanren的专栏 7443

Java布局管理器详解

很多初学[Java教程]的小伙伴对Java布局管理器不是很了解,下面小编就来给大家进行详细介绍。BorderLayout(边框布局管理器)是 Window、JFrame 和 JDialog 的默认布局管理器。边框布局管理器将窗口分为 5 个区域:North、South、East、West 和 Center。其中,North 表示北,将据面板的上方;Soufe 表示南,将据面板的下方;East表示东,将据面板的右侧;West 表示西,将据面板的左侧;中间区域 Center 是在东、南、西、北都填满后剩

java_spring6的博客 2402

java布局管理器_Java中提供了几种布局管理器

近日,很多网友都在关注Java中提供了几种布局管理器这个话题,那么Java中提供了几种布局管理器具体情况是怎么样的呢?Java中提供了几种布局管理器的相关信息有哪些?下面的内容是小编为大家找到的关于Java中提供了几种布局管理器的最新信息,大家一起来看看吧!答案1:java布局管理器有几种 都有什么怎么才6种呢?10多20种,你自已去JAVA的API里面查看吧,java.awt包中大约有Flow...

weixin_39864591的博客 2837

java中什么是布局管理器_Java布局管理器

布局管理器种类FlowLayout: 组件在一行中从左至右水平排列,排满后折行,它是Panel、Applet的默认布局管理器。BorderLayout:北、南、东、西、中,它是Window、Frame、Dialog的默认布局管理器。GridLayout:以行和列的网格形式安排组件GridBagLayout:更复杂、功能更强的网格布局CardLayout:每一个组件作为一个卡片,容器仅显示多个卡片中...

weixin_42116650的博客 2242

java布局管理器总结

BorderLayout FlowLayout GridLayout GridBagLayout CardLayout BoxLayout1.BorderLayout java.lang.Object –java.awt.BorderLayout 将版面划分成东、西、南、北、中五个区域,将添加的组件按指定位置放置。 BorderLayout.EAST Border

红叶岭谷的博客 6824

Java Swing布局管理器

引言 在使用 Swing 向容器添加组件时,需要考虑组件的位置和大小。如果不使用布局管理器,则需要先在纸上画好各个组件的位置并计算组件间的距离,再向容器中添加。这样虽然能够灵活控制组件的位置,实现却非常麻烦。 为了加快开发速度,Java 提供了一些布局管理器,它们可以将组件进行统一管理,这样开发人员就不需要考虑组件是否会重叠等问题。本文绍 Swing 提供的 6 种布局类型,所有布局都实现 La...

书香水墨 1万+

java 布局管理器_JAVA布局管理器

JAVA的界面布局原理:因为Java跨平台语言,使用绝对坐标显然会导致问题,即在不同平台、不同分辨率下的显示效果不一样。Java 为了实现跨平台的特性并且获得动态的布局效果,Java将容器内的所有组件安排给一个“布局管理器”负责管理,如:排列顺序,组件的大小,位置等,当窗口移动或调整大小后组件如何变化等功能授权给对应的容器布局管理器来管理,不同的布局管理器使用不同算法和策略,容器可以通过选择不同...

weixin_35180432的博客 602

java的jframe布局管理器_java基础 布局管理器

概念:组建在容器(比如JFrame)中的位置和 大小 是由布局管理器来决定的。所有的容器都会使用一个布局管理器,通过它来自动进行组建的布局管理。种类:java共提供了物种布局管理器:流式布局管理器(FlowLayout),边界布局管理器(BorderLayout),网络布局管理器(GridLayout),卡片布局管理器(CardLayout),网格布局管理器(GridBagLayout)。其中前三...

weixin_36127082的博客 1342

AWT 布局管理器Java 图形界面编程的核心

布局管理器Java 中的一种机制,用于自动管理容器中组件的位置和尺寸。在没有布局管理器的情况下,开发人员需要手动设置组件的位置、大小和其他属性,这样的方式既繁琐又容易出错。而布局管理器可以根据不同的策略自动计算和调整组件的大小和位置,使得界面布局更加灵活和响应式。

2302_79376097的博客 5554

java布局管理器定义_JAVA布局管理器

JAVA的界面布局原理:由于Java跨平台语言,使用绝对坐标显然会导致问题,即在不同平台、不同分辨率下的显示效果不一样。Java 为了实现跨平台的特性并且获得动态的布局效果,Java将容器内的全部组件安排给一个“布局管理器”负责管理,如:排列顺序,组件的大小,位置等,当窗体移动或调整大小后组件怎样变化等功能授权给相应的容器布局管理器来管理,不同的布局管理器使用不同算法和策略,容器可以通过选择不同...

weixin_29281915的博客 637

JAVA中的LayoutManager布局管理器

布局管理器LayoutManager

WHS-_-2022的博客 942
上一篇: 字符串截取
下一篇: JAVA面试题(2)
foamnew
博客等级 码龄18年 1粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值