Swing布局管理器
在Swing中使用的所有布局管理器都可以实现LayoutManager接口。Swing中有五种常见的布局管理器分别为FlowLayout、BorderLayout、GridLayout、CardLayout、绝对定位。使用方法及常量可以查找JDK文档。
一:FlowLayout属于流式布局管理器,使用此种布局方式会使所有的组件想流水一样依次进行排序。
<span style="font-size:14px;">package org.cjl.demo18.layoutdemo; import java.awt.FlowLayout; import javax.swing.JButton;
import javax.swing.JFrame; public class FlowLayoutDemo01 {
public static void main(String[] args){
JFrame frame = new JFrame("welcome to mldn");
//设置窗体中的布局管理器为FlowLayout,所有组件居中对齐,水平和垂直距离为3.
frame.setLayout(new FlowLayout(FlowLayout.CENTER,3,3));
JButton but = null;
for(int i=0;i<9;i++){
but = new JButton("按钮 - "+i);
frame.add(but);//加入按钮 }
frame.setSize(280,130);
frame.setVisible(true);
}
}
</span>
显示的结果是
所有的组件按照顺序依次向下排列,每个组件之间的顺序是3.
二:BorderLayout是将一个窗体的版面划分为东、西、南、北、中区域,可以直接将需要的组件放到这区域中。
<span style="font-size:14px;">package org.cjl.demo18.layoutdemo; import java.awt.BorderLayout; import javax.swing.JButton;
import javax.swing.JFrame; public class BorderLayoutDemo01 {
public static void main(String[] args){
JFrame frame = new JFrame("Welocme to mldn");
//设置窗体中的布局管理器为BorderLayout,所有的组件水平和垂直间距为3
frame.setLayout(new BorderLayout(3,3));
frame.add(new JButton("东(EAST)"),BorderLayout.EAST);
frame.add(new JButton("西(WEST)"),BorderLayout.WEST);
frame.add(new JButton("南(SOUTH)"),BorderLayout.SOUTH);
frame.add(new JButton("北(NORTH)"),BorderLayout.NORTH);
frame.add(new JButton("中(CENTER)"),BorderLayout.CENTER); frame.pack(); //自动调整窗体大小
frame.setVisible(true);
}
}
</span>
三:GridLayout:是以表格的形式进行管理的,在使用此布局管理器时必须设置显示的行数
package org.cjl.demo18.layoutdemo; import java.awt.GridLayout; import javax.swing.JButton;
import javax.swing.JFrame; public class GridLayoutDemo01 {
public static void main(String[] args){
JFrame frame = new JFrame("welcome to mldn");
//设置窗体中的布局管理为GridLayout,按3X5进行排列,水平和垂直间距为3.
frame.setLayout(new GridLayout(3,5,3,3));
JButton but = null;
for(int i=0;i<13;i++){
but = new JButton("按钮 - "+i);
frame.add(but);
}
frame.pack();//根据组件自动调整窗体大小
frame.setVisible(true);
}
}
显示结果
四:CardLayout:是将一组组件彼此重,像卡片一样。
package org.cjl.demo18.layoutdemo; import java.awt.CardLayout;
import java.awt.Container; import javax.swing.JFrame;
import javax.swing.JLabel; public class CardLayoutDemo01 {
public static void main(String[] args){
JFrame frame = new JFrame("welcome to mldn");
Container cont = frame.getContentPane();//取得 窗体容器
CardLayout card = new CardLayout();
frame.setLayout(card);//设置布局管理器
cont.add(new JLabel("标签-A",JLabel.CENTER),"first");
cont.add(new JLabel("标签-B",JLabel.CENTER),"second");
cont.add(new JLabel("标签-C",JLabel.CENTER),"third");
cont.add(new JLabel("标签-D",JLabel.CENTER),"fourth");
cont.add(new JLabel("标签-E",JLabel.CENTER),"fifth");
frame.pack();//自动调整窗体大小 frame.setVisible(true);
card.show(cont, "fourth");
for(int i=0;i<5;i++){
try{
Thread.sleep(3000); //加入显示延迟
}catch(InterruptedException e){
e.printStackTrace();
}
card.next(cont);//从容器中取出组件 }
}
}
Swing布局管理器的更多相关文章
- 编写Java程序,使用Swing布局管理器和常用控件,实现仿QQ登录界面
返回本章节 返回作业目录 需求说明: 使用Swing布局管理器和常用控件,实现仿QQ登录界面 实现思路: 创建登录界面的类QQLogin,该类继承父类JFrame,在该类中创建无参数的构造方法,在构造 ...
- 编写Java程序,使用Swing布局管理器与常用控件,实现用户登录界面
返回本章节 返回作业目录 需求说明: 使用Swing布局管理器与常用控件,实现用户登录界面 实现思路: 创建用户登录界面的类LoginFrame,在该类中创建无参数的构造方法,在构造方法中,设置窗体大 ...
- Swing布局管理器介绍
创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhangjunhd.blog.51cto.com/113473/128174 当选 ...
- Swing——布局管理器
前言 在编写图形界面时,总是需要考虑的就是组件放在哪里,组件怎么大才合适.在Swing中就有现成的布局管理器帮我们做这些事情,我们不必写代码去一一安排.下面将介绍什么是布局管理器.Swing中常用布局 ...
- Java Swing布局管理器GridBagLayout的使用示例 [转]
GridBagLayout是java里面最重要的布局管理器之一,可以做出很复杂的布局,可以说GridBagLayout是必须要学好的的, GridBagLayout 类是一个灵活的布局管理器,它不要求 ...
- 5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)
5.Java-Swing常用布局管理器 应用布局管理器都属于相对布局,各组件位置可随界面大小而相应改变,不变的只是其相对位置,布局管理器比较难以控制,一般只在界面大小需要改是才用,但即使这 ...
- Java Swing 第03记 布局管理器
几种Swing常用的布局管理器 BorderLaout 它将容器分为5个部分,即东.南.西.北.中,每一个区域可以容纳一个组件,使用的时候也是通过BorderLayout中5个方位常量来确定组件所在的 ...
- (转)Java 的swing.GroupLayout布局管理器的使用方法和实例
摘自http://www.cnblogs.com/lionden/archive/2012/12/11/grouplayout.html (转)Java 的swing.GroupLayout布局管理器 ...
- Java 的swing.GroupLayout布局管理器的使用方法和实例(转)
The following builds a panel consisting of two labels in one column, followed by two textfields in t ...
随机推荐
- [LeetCode]题解(python):002-Add Two Numbers
题目来源: https://leetcode.com/problems/add-two-numbers/ 题意分析: 这道题目是要将两个单链条相加.输出得到的新链条. 题目思路: 不难发现,其实题目就 ...
- python函数abs()
详解: 返回绝对值 参数可以是:负数.正数.浮点数或者长整形 实例: abs(-1.2) #返回 1.2 abs(1.2) #返回 1.2 abs(-11216.5) #返回 11216.5 abs( ...
- 一张图解释---Java多态
1.向上转型:编译器自动进行,不需要声明 Snowboard s = new Snowboard (); Object o = s; (相当于指向Snowboard的内部Object实例,所有类都继承 ...
- 关于Class.forName(“com.mysql.jdbc.Driver”)--转
传统的使用jdbc来访问数据库的流程为:Class.forName(“com.mysql.jdbc.Driver”);String url = “jdbc:mysql://localhost:3306 ...
- [转]WIBKIT技术资料
WebKit结构和流程分析 http://inedx.blog.hexun.com/28830354_d.html webkit架构 http://inedx.blog.hexun.com/28795 ...
- Scraping JavaScript webpages with webkit | WebScraping.com
Scraping JavaScript webpages with webkit | WebScraping.com Scraping JavaScript webpages with webkit ...
- PHP中用到的一些字符串函数
/*常用的字符串输出函数 * * echo() 输出字符串 * print() 输出一个或多个字符串 * die() 输出一条信息,并退出当前脚本 * printf() ...
- 开源html5_kiwijs_helloworld
本次须要的下载文件已经共享出来 网盘地址 由于我使用的是黑苹果系统, window我就无视了. 开发工具使用 网盘里的 dmg :Sublime Text 打开开发工具后在helloworld中找到 ...
- input autocomplete 下拉提示+支持中文
js 代码: $.getJSON("/Foreign/Getforeign_routeEndPoint", function (data) { $(" ...
- Value Categories
Value categories Three primary categories primary categories mixed special Each C++ expression (an o ...