我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java Swing组件布局管理器之FlowLayout(流式布局)入门教程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java Swing组件布局管理器之FlowLayout(流式布局)入门教程

本文实例讲述了Java Swing组件布局管理器之FlowLayout(流式布局)。分享给大家供大家参考,具体如下:

FlowLayout应该是Swing布局管理器学习中最简单、最基础的一个。所谓流式,就是内部控件像水流一样,从前到后按顺序水平排列,直到达到容器的宽度时跳转到第二行。既然是水平排列,那么就存在三种基本的对齐方式:居中对齐(CENTER )、左对齐(LEFT )和右对齐(RIGHT )。然而,FlowLayout还提供两种对齐方式:LEADING,表示控件与容器方向开始边对应;TRAILING,控件与容器方向结束边对应。setAlignment(int align)用于设置对齐方式。在一般情况下,LEADING就是左对齐,TRAILING就是右对齐。除此之外,FlowLayout还可以对内部控件之间、内部控件与容器之间的间距进行设置,setHgap(int hgap)用于指定水平间距;setVgap(int vgap)用于指定垂直间距。

FlowLayout常用方法如下:

构造函数

名称

用途

FlowLayout()

构造一个新的 FlowLayout,它是默认居中对齐的,默认的水平和垂直间隙是5个像素

FlowLayout(int align)

构造一个新的 FlowLayout,它具有指定的对齐方式,默认的水平和垂直间隙是 5 个像素

五个参数值及含义如下:

0或FlowLayout.lEFT ,控件左对齐

1或FlowLayout.CENTER ,居中对齐

2或FlowLayout.RIGHT ,右对齐

3或FlowLayout.LEADING,控件与容器方向开始边对应

4或FlowLayout.TRAILING,控件与容器方向结束边对应

如果是0、1、2、3、4之外的整数,则为左对齐

FlowLayout(int align, int hgap, int vgap)

创建一个新的流布局管理器,它具有指定的对齐方式以及指定的水平和垂直间隙。

基本方法

名称

用途

Void setAlignment(int align)

设置此布局的对齐方式。

void setHgap(int hgap)

设置组件之间以及组件与 Container 的边之间的水平间隙。

void setVgap(int vgap)

设置组件之间以及组件与 Container 的边之间的垂直间隙。


测试用例如下:

package awtDemo;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.HashMap;import java.util.Map;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;@SuppressWarnings("serial")public class FlowLayoutDemo extends JFrame { FlowLayout contentPanelLayout = new FlowLayout(); Map<String, Integer> alignmentMap = new HashMap<String, Integer>(); JPanel configPanel = new JPanel(); JPanel contentPanel = new JPanel(); JComboBox<String> alignmentComboBox = new JComboBox<String> (); JTextField textHgap = new JTextField("10"); JTextField textVgap = new JTextField("20"); MyListener myListener = new MyListener(); public FlowLayoutDemo() { //init alignmentMap.put("LEFT", 0); alignmentMap.put("CENTER", 1); alignmentMap.put("RIGHT", 2); alignmentMap.put("LEADING", 3); alignmentMap.put("TRAILING", 4); //设置面板 configPanel.setLayout(new FlowLayout()); configPanel.add(new JLabel("对齐方式")); for (String alignment : alignmentMap.keySet()) { alignmentComboBox.addItem(alignment); } configPanel.add(alignmentComboBox); configPanel.add(new JLabel("水平间距")); configPanel.add(textHgap); configPanel.add(new JLabel("垂直间距")); configPanel.add(textVgap); JButton actionBtn = new JButton("Action!!!"); actionBtn.addActionListener(myListener); configPanel.add(actionBtn); //展示面板 contentPanel.setLayout(contentPanelLayout); contentPanel.add(new JButton("Button 1")); contentPanel.add(new JButton("Button 2")); contentPanel.add(new JButton("Button 3")); contentPanel.add(new JButton("Button 4")); //主窗体 setLayout(new BorderLayout()); add("North",configPanel); add("South", contentPanel); } class MyListener implements ActionListener { public void actionPerformed(ActionEvent e) { String alignmentStr = alignmentComboBox.getSelectedItem().toString(); int alignment = alignmentMap.get(alignmentStr); contentPanelLayout.setAlignment(alignment); int hgap = Integer.valueOf(textHgap.getText()); int vgap = Integer.valueOf(textVgap.getText()); contentPanelLayout.setHgap(hgap); contentPanelLayout.setVgap(vgap); contentPanel.updateUI(); } } public static void main(String[] args) { // TODO Auto-generated method stub FlowLayoutDemo window = new FlowLayoutDemo(); window.setTitle("FlowLayoutDemo - www.jb51.net"); // 该代码依据放置的组件设定窗口的大小使之正好能容纳你放置的所有组件 window.setPreferredSize(new Dimension(500, 200)); window.pack(); window.setVisible(true); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setLocationRelativeTo(null); // 让窗体居中显示 }}

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java Swing组件布局管理器之FlowLayout(流式布局)入门教程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java Swing组件布局管理器之FlowLayout(流式布局)入门教程

本文实例讲述了Java Swing组件布局管理器之FlowLayout(流式布局)。分享给大家供大家参考,具体如下:FlowLayout应该是Swing布局管理器学习中最简单、最基础的一个。所谓流式,就是内部控件像水流一样,从前到后按顺序水
2023-05-30

Java GUI流式布局管理器FlowLayout怎么用

本文小编为大家详细介绍“Java GUI流式布局管理器FlowLayout怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java GUI流式布局管理器FlowLayout怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
2023-06-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录