学习
实践
活动
工具
TVP
写文章

超详细Java容器、面板及四大布局管理器应用讲解!

之前进行Java窗体开发时经常会把容器、面板与布局管理混淆,从而不能正确使用这三种属性对窗体应用进行布局。所以今天在这里记录一下Java窗体中容器、面板及常见四大布局管理器用法。 面板中加入一个文本框,实现一个带有滚动条文本框。 使用绝对布局时首先有一点需要注意:就是要先取消默认布局管理器,方法为: setLayout(null); //清空布局管理器,即取消原来边界布局管理器 至于为什么要这样做,详细解释可以看我这篇文章 使用绝对布局管理器时值得注意就是:使用绝对布局之前要调用setLayout(null)方法来告知编辑器,这里将不再使用默认布局管理器。 默认情况下,组将在流布局管理器中都是以居中排列,当然排列顺序是可以改变FlowLayout类中构造函数中有如下三种: Public FlowLayout(); Public FlowLayout

67810

JAVA学习Swing章节流布局管理器简单学习

; import javax.swing.JFrame; import javax.swing.WindowConstants; /** * 1:流(FlowLayout)布局管理器是布局管理器中最基本布局管理器 ,流布局管理器整个容器中 * 布局正如其名,像流一样从左到右摆放组件,直到占据了这一行所有空间,然后再向下移动一行。 * 默认情况下,组件每一行都是居中排列,但是通过设置也可以更改组件每一行排列位置 * * 2:FlowLayout类中具有三种构造方法 * alignment参数使用布局管理器后组件每一行具体摆放位置 ");//设置窗体标题 Container container=getContentPane();//初始化容器 //设置窗体使用布局管理器,使组件右对齐,并且设置组件之间水平间隔 ,然后设置容器使用边界布局管理器 * 最后循环中将按钮添加到容器中,并设置组件布局 *2:add()方法提供了容器中添加组件功能,并同时设置组件摆放位置 * */

34900
  • 广告
    关闭

    2022腾讯全球数字生态大会

    11月30-12月1日,邀您一起“数实创新,产业共进”!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JAVA学习Swing章节流布局管理器简单学习

    ; import javax.swing.JFrame; import javax.swing.WindowConstants; /** * 1:流(FlowLayout)布局管理器是布局管理器中最基本布局管理器 ,流布局管理器整个容器中 * 布局正如其名,像流一样从左到右摆放组件,直到占据了这一行所有空间,然后再向下移动一行。 * 默认情况下,组件每一行都是居中排列,但是通过设置也可以更改组件每一行排列位置 * * 2:FlowLayout类中具有三种构造方法 * alignment参数使用布局管理器后组件每一行具体摆放位置 ");//设置窗体标题 Container container=getContentPane();//初始化容器 //设置窗体使用布局管理器,使组件右对齐,并且设置组件之间水平间隔 ,然后设置容器使用边界布局管理器 * 最后循环中将按钮添加到容器中,并设置组件布局 *2:add()方法提供了容器中添加组件功能,并同时设置组件摆放位置 * */

    11030

    Java入门(12)-- Swing程序设计

    12.3.2 图标的使用 Swing中图标可以放置在按钮、标签等组件,用于描述组件用途。 12.4.1 绝对布局 绝对布局,就是硬性指定组件容器中位置和大小,可以使用绝对坐标的方式来指定组件位置。 使用绝对布局步骤如下: 1)使用Container.setLayout(null)方法取消布局管理器; 2)使用Component.setBounds()方式设置每个组件大小与位置。 默认情况下,组件每一行都是居中排列,可以通过设置更改组件排列位置。 alignment参数表示使用布局管理器后组件每一行具体摆放位置,可被赋值为: FlowLayout.LEFT = 0 FlowLayout.CENTER = 1 FlowLayout.RIGHT

    13110

    《Java 2 图形设计卷Ⅱ- SWING》第2章 Swing基本知识

    记住这一点是很重要,因为java.applet.Applet与JApplet不同,它使用FlowLayout一个实例来布局组件。   如果修改例2-1应用程序,让该小应用程序试图设置它布局管理器,则将弹出带有下面错误消息异常信息:  java.lang.Error:Do not use Test.setLayout()use 相比之下,Swing应用程序和应用程序内容窗格中使用相同布局管理器(即一个BorderLayout实例)。   Swing小应用程序和应用程序都使用BorderLayout布局管理器来布局它们JRootPane实例,并且不允许显式地设置它们布局管理器。 首先,我们要讨论为什么Swing是线程不安全,然后介绍Swing开发过程中单线程设计所带来结果。  让我们面对这个事实,甚至java中,开发多线程应用程序也是不容易

    28120

    Java图形化界面设计——布局管理器之BorderLayout

    依次对应为:北(NORTH)、下南(SOUTH)、左西(WEST)、右东(EAST),中(CENTER),如下图所示。 ? 依次注释掉东、西、南、北和中间位置添加按钮语句,保留其它语句体会一下边框布局特点。 如果想要更复杂布局可以东、西、南、北和中间位置添加中间容器,中间容器中再进行布局,并添加相应组件,已达到复制补间效果。 实例二:中间位置中添加9个按钮。 add("West", new JButton("West")); //设置面板为流式布局居中显示,组件横、纵间距为5个像素 p.setLayout(new FlowLayout (1, 5, 5)); //使用循环添加按钮,注意每次添加按钮对象名称都是b //但按钮每次均是用new新生成,所有代表不同按钮对象。

    51810

    Java进阶08 GUI

    面向对象编程计算机图形方面应用非常成功。 一个简单GUI JavaGUI功能主要集中awt和swing两个包中。awt是GUI底层包。swing包是高层封装,更容易移植。 匿名类是Java一种嵌套类,它是使用new创建对象时,使用一个{}来直接包含类定义。匿名类定义中,我们不需要说明类名。 Content PanesetLayout()方法决定了元素布局(layout)方式。布局决定了元素位置。最直接布局是直接说明元素坐标位置(像素)。 但GUI设备尺寸可能差别很大,硬性规定像素位置将大大减小程序可移植性。Swing提供了更高层一些布局方法,比如FlowLayout下,元素将从左向右排列,排满之后进入下一行。 更多Java布局方式 图形元素 除了按钮之外,我们还可以GUI中增加更多元素,这些元素大都是JComponent衍生类。

    61570

    java swing开发窗体程序开发(一)GUI编程

    getLayer(Component c);//可以获得一个组件Layer (五)设置布局 即组件面板布局 容器/面板通过调用setLayout(布局对象)来设置布局 1:FlowLayout 布局:表示默认居中对齐,使用布局方式容器,用add函数向里面加组件,就会根据先后顺序从左向右排列,一行排完后就提行 使用布局方式,组件自身setSize将不会有用,要改变大小只能通过setPreferredSize (DimensionpreferredSize) button.setPreferredSize(new Dimension(20,20))) 该布局方式对齐方式可以更改FlowLayout对象调用 setAlignment(int align);//使用该函数修改对齐方式,传入参数是一个静态常量,FlowLayout.LEFT,FlowLayout.CENTER FlowLayout.RIGHT 且显示出来组件将会占据该容器所有空间 使用该种布局容器添加组件时 add(String s,Component c) s只是一个代号,方便以后显示这个组件时找到 cardlayout对象

    14430

    23 Java 图形化编程

    而本章介绍Java图形用户界面技术是基于Java SE Swing,事实它们实际应用使用不多,因此本章内容只做了解。 Applet Applet称为Java小应用程序,Applet基础是AWT,但它主要嵌入到HTML代码中,由浏览器加载和运行,由于存在安全隐患和运行速度慢等问题,已经很少使用了。 JavaFX JavaFX是开发丰富互联网应用程序(Rich Internet Application,缩写RIA)图形用户界面技术,JavaFX期望能够桌面应用开发领域与Adobe公司AIR 使用时通过继承事件所对应适配器类,覆盖所需要方法,无关方法不用实现。 g2d.setTransform(trans); 习题 编写窗体应用,窗体中安排2个按钮,按钮上面的标签分别为“改背景”、“关闭”,点击“改背景”按钮,用随机产生颜色更改窗体背景,点击“关闭”按钮可关闭窗体

    9120

    深入Java Swing用户界面组件布局管理器:网格布局+面板+边界布局

    正如你所看到,按钮居中显示一行中,当一行空间不够时,将显示一行。 即使用户对框架进行缩放,这些按钮也会显示面板中央,如图9-7所示。 最后使用add方法将每个按钮添加到面板中。由于把按钮添加到面板中且没有改变默认布局管理器,所以每个按钮位置和大小都由FlowLayout管理器所控制。 面板只是用户界面设计者一个组织机制。 前面讲过,JPanel类使用FlowLayout作为默认布局管理器。对于JPanel来说,可以利用构造器为其提供不同布局管理器。 当然,极少有应用程序具有与计算器外表一样布局实际应用中,小网格(通常仅仅一行或者一列)组织窗口布局区域时比较有用。 例如,如果想有一行相同尺寸按钮,那么就可以把按钮放置一个面板里面,这个面板使用只有单行网格布局进行管理。

    14830

    java Swing GUI 入门-文件读写器

    Contariner容器向其中添加组件 容器Container是一个类,实际是Component子类,因此容器本身也是一个组件,具有组件所有性质,但它主要内容是容纳其他组件和容器,在其可视区显示这些组件 容器各种组件大小和位置是由容器布局管理器进行控制。 其实就是获取内容面板,JFrame无法直接添加组件需要getContentPane()获取面板,然后再内容面板添加组件。 因此平时添加窗口组件都是添加到ContentPane里, 通常都是分开写 Container c=this.getContentPane();//初始化一个容器 c.add(****); //容器添加控件 或是: this.getContentPane().add(); 首先向innerWindow这个组件中添加元素,使用网格布局 innerWindow.setLayout(new GridLayout this.getContentPane().setLayout(new BorderLayout()); // 关于BorderLayout()边界布局法,主要是按照东南西北中顺序进行布局

    26010

    Java学习代码合集

    其实我学习java最根本原因是:我是一个挺关注外在的人,虽然是个程序员,所以我很喜欢写出那些带有漂亮界面的程序,因为C总是控制台,我不是很喜欢,在这份java代码合集中,我会记录自己学习Java界面化编程点点滴滴 更新:因为C/C++是我主要使用语言,所有后来写界面主要用Qt写了,但我java也会继续学。我只是给想学界面gui同志一个思路。 "); public AppFrame() { setLayout(new FlowLayout()); getContentPane().add(in) ; getContentPane().add(btn); getContentPane().add(out); btn.addActionListener this.panelLoginButton = new JPanel(); this.setLayout(new GridLayout(3, 1)); //网格式布局

    7830

    java swing一篇轻松学习(高考后可以自学)

    方法名称 概述 getContentPane() 返回此窗体 contentPane 对象 getDefaultCloseOperation() 返回用户在此窗体单击“关闭”按钮时执行操作 setContentPane Container c=getContentPane(); //将lable标签组件添加到内容窗格 c.add(lable); //设置本窗口是否可见 setVisible(true public static void main(String[] args) { new Action(); } } 面板:(JPanel) 是一种中间层容器,它能容纳组件并将组件组合在一起,但它本身必须添加到其他容器中使用 *3、网格布局(GridLayout) *4、盒子布局(BoxLaYout) *5、空布局(null) */ jl.setLayout(new FlowLayout(FlowLayout.CENTER 布局管理器,将组件间横向和纵向间隙都设置为20像素 jPanel.setLayout(new FlowLayout(FlowLayout.LEADING,20,20));

    10510

    Java applet详解

    paint()方法实际继承于java.awt。 如图 3. //容器 Java.awt.Panel//面板 Java.applet.Applet:默认布局方式是FlowLayout Javax.swing.JApplet:默认布局方式是BorderLayout ().add(button); add(button); } } 上面代码中,运行可以看到布局是BorderLayout,getContentpane是获取当前JApplet面板 ,运行完后会发现布局变成了FlowLayout。 AppletContext接口 使用getAppletContext()获取当前applet上下文环境。 使用showStatus()方法改变显示浏览器状态栏信息。

    7120

    java学习之路:32.史上最全Swing常用组件

    应该有这样概念,Swing组件窗体通常与组件和容器相关,所以JFrame对象创建完成后,需要调用方法将窗体转换为容器,然后容器中添加组件或设置布局管理器,通常,这个容器用来包含和显示组件。 可以看到创建按钮涉及整个窗体,这是为什么呢,窗体默认使用边界布局器,创建组件会覆盖整个窗体,我们只需要取消边界布局,改用绝对布局: jf.setLayout(null); //告诉窗体取消边界布局 如果这里有疑问可查看: 布局管理器 2.创建带有文本按钮 JButton jb=new JButton("我是按钮"); jb.setBounds(50,50,100,100);//使用绝对布局 jl.setBounds(50,50,100,100);//使用绝对布局,自定义按钮大小 Container c=jf.getContentPane(); c.add(jl); 可以看到创建了一个空白下拉列表框,显然日常应用中是没有用,下面来添加选项: 2.创建一个JComboBox,它从现有的ComboBoxModel中获取项目。

    1.3K22

    iOS流布局UICollectionView系列四——自定义FlowLayout进行瀑布流布局

    iOS流布局UICollectionView系列四——自定义FlowLayout进行瀑布流布局 一、引言         前几篇博客从UICollectionView基础应用到设置UICollectionViewFlowLayout 这种布局无疑app应用中更加广泛,商品展示,书架书目的展示,都会倾向于采用这样布局方式,当然,通过自定义FlowLayout,我们也很容易实现。 ,因此,collectionView进行UI布局前,会通过这个类对象获取相关布局信息,FlowLayout类将这些布局信息全部存放在了一个数组中,数组中是UICollectionViewLayoutAttributes 总之,FlowLayout类将每个item位置等布局信息放在一个数组中,collectionView布局时,会调用FlowLayout类layoutAttributesForElementsInRect 因此,我们需要重写这个方法,返回我们自定义配置数组,另外,FlowLayout进行布局之前,会调用prepareLayout方法,所以我们可以重写这个方法,在里面对我们自定义配置数据进行一些设置

    1.8K20

    浅谈Android开发者2017年最值得关注25个实用库

    Google应用市场上,也有相应demo。这个库被超过7500github使用者关注。 Store Store是用于Async数据加载和缓存库。 根据文件: “Store是简化应用程序中获取,解析,存储和检索数据类。 您可以在下面的gif检查它工作原理: ? 根据其README: “CameraFragment直接预览相机视图,并提供了一个简单API来捕获或管理设备。 您可以使用CameraFragment设置自己布局并控制相机。“ ? FlowLayout “当没有足够空间时,允许子视图流到下一行。 子视图之间间距可以由FlowLayout计算,以便视图均匀放置。 ?

    23121

    11 - JavaSE之GUI

    GUI 各种元素(如:窗口,按钮, 文本框等)由 Java 类来实现。 使用 AWT 所涉及类一般 java.awt 包及其子包中。 ---- Component 和 Container Java 图形用户界面的最基本组成部分是 Component,Component 类及其子类对象用来描述以图形化方式显示屏幕并能与用户进行交互 Panel() // 使用默认布局管理器初始化。 Panle(LayoutManager layout) // 使用指定布局管理器初始化。 Panel 类拥有从其父继承来一些常用成员方法。 ---- 布局管理器 Java 语言中,提供了布局管理器类对象可以管理 Component Container 中布局,不必直接设置 Component 位置和大小。 使用布局管理器时,布局管理器负责各个组件大小和位置,因此用户无法在这种情况下设置组件大小和位置属性,如果试图使用 Java 提供 setLocation(), setSize(), setBounds

    45550

    java-GUI编程之布局类型介绍

    使用AWT创建图形界面应用和所在运行平台有相同界面风格 , 比如在 Windows 操作系统,它就表现出 Windows 风格 ; UNIX 操作系统,它就表现出UNIX 风格 。 构造方法 方法功能 FlowLayout() 使用默认 对齐方式及默认垂直间距、水平间距创建 FlowLayout 布局管理器。 FlowLayout(int align) 使用指定对齐方式及默认垂直间距、水平间距创建 FlowLayout 布局管理器。 与 FlowLayout不同是,放置 GridLayout 布局管理器中各组件大小由组件所处区域决定(每 个组件将自动占满整个区域) 。 GUI 组件横向内部填充大小,即 该组件最小尺寸基础还需要增大多少. ipady 设置受该对象控制 GUI 组件纵向内部填充大小,即 该组件最小尺寸基础还需要增大多少. insets

    7310

    java GUI 快速入门

    AWT 和 Swing 都能跨平台使用;AWT 会随着不同系统平台,UI 样式会有所变化,Swing 则不会,设计完毕后在所有平台下样式一致。 设置是否显示窗口,true 显示,false 隐藏 setLayout(new FlowLayout());用于设置窗口布局; add(组件); 用于向窗口添加组件,例如按钮等。 public void actionPerformed(ActionEvent actionEvent) { System.out.println("执行工作"); } 将事件注册到控件 FlowLayout 流式布局 默认布局,控件从上到下,从左到右地排序。 BorderLayout 边缘布局 自动停靠窗体边缘,并且长宽随着窗体变化。 ? (){ super("测试"); setLayout(new FlowLayout()); } } 继承 Frame 窗体中,使用 setLayout方法 可以设置布局

    27940

    扫码关注腾讯云开发者

    领取腾讯云代金券