Java——布局管理器
在Swing中使用的所有布局管理器都可以实现LayoutManager接口,在Swing中主要使用的5种布局管理器:FlowLayout、BorderLayout、GridLayout、CardLayout、绝对定位。
import java.awt.FlowLayout; import javax.swing.JButton;
import javax.swing.JFrame; //=================================================
// File Name : FlowLayout_demo
//------------------------------------------------------------------------------
// Author : Common //主类
//Function : FlowLayout_demo
public class FlowLayout_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
//设置窗体中的布局管理器为FlowLayout,所有的组件居中对齐,水平和垂直间距为3
f.setLayout(new FlowLayout(FlowLayout.CENTER,3,3));
JButton but = null;
for(int i=0;i<9;i++){
but = new JButton("按钮--"+i);
f.add(but);
}
f.setSize(500, 200);
f.setVisible(true);
} }
import java.awt.BorderLayout;
import java.awt.FlowLayout; import javax.swing.JButton;
import javax.swing.JFrame; //=================================================
// File Name : BorderLayout_demo
//------------------------------------------------------------------------------
// Author : Common //主类
//Function : BorderLayout_demo
public class BorderLayout_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
//设置窗体中的布局管理器为BorderLayout,水平和垂直间距为3
f.setLayout(new BorderLayout(3,3));
f.add(new JButton("东"),BorderLayout.EAST);
f.add(new JButton("西"),BorderLayout.WEST);
f.add(new JButton("南"),BorderLayout.SOUTH);
f.add(new JButton("北"),BorderLayout.NORTH);
f.add(new JButton("中"),BorderLayout.CENTER);
f.pack(); //根据组件自动调整窗体的大小
f.setVisible(true);
} }
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout; import javax.swing.JButton;
import javax.swing.JFrame; //=================================================
// File Name : GridLayout_demo
//------------------------------------------------------------------------------
// Author : Common //主类
//Function : GridLayout_demo
public class GridLayout_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
//设置窗体中的布局管理器为GridLayout,3乘以5,水平和垂直间距为3
f.setLayout(new GridLayout(3,5,3,3));
JButton but = null;
for(int i=0;i<13;i++){
but = new JButton("按钮--"+i);
f.add(but);
}
f.pack(); //根据组件自动调整窗体大小
f.setVisible(true);
} }
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel; //=================================================
// File Name : CardLayout_demo
//------------------------------------------------------------------------------
// Author : Common //主类
//Function : CardLayout_demo
public class CardLayout_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
Container cont = f.getContentPane(); //取得窗体容器
CardLayout card = new CardLayout(); //定义布局管理器
f.setLayout(card);
cont.add(new JLabel("东123456789",JLabel.CENTER),"first");
cont.add(new JLabel("西123456789",JLabel.CENTER),"second");
cont.add(new JLabel("南123456789",JLabel.CENTER),"third");
cont.add(new JLabel("北123456789",JLabel.CENTER),"fourth");
cont.add(new JLabel("中123456789",JLabel.CENTER),"fifth");
f.pack(); //根据组件自动调整窗体大小
f.setVisible(true);
card.show(cont, "third");
for(int i=0;i<5;i++){ //循环显示每张卡片
try{
Thread.sleep(3000);
}catch(InterruptedException e){
}
card.next(cont);
} } }
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel; //=================================================
// File Name : AbsoluteLayout_demo
//------------------------------------------------------------------------------
// Author : Common //主类
//Function : AbsoluteLayout_demo
public class AbsoluteLayout_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
f.setLayout(null); //绝对定位
JLabel title = new JLabel("标签对象"); //建立标签对象
JButton enter = new JButton("进入"); //建立按钮对象
JButton help = new JButton("帮助");
f.setSize(200,90); //设置窗体大小
title.setBounds(45,5,150,20); //设置组件的位置及其大小
enter.setBounds(10,30,80,20); //设置组件的位置及其大小
help.setBounds(100,30,80,20); //设置组件的位置及其大小
f.add(title);
f.add(enter);
f.add(help);
f.setVisible(true); } }
Java——布局管理器的更多相关文章
- JAVA布局管理器
JAVA的界面布局原理:由于Java是跨平台语言,使用绝对坐标显然会导致问题,即在不同平台.不同分辨率下的显示效果不一样.Java 为了实现跨平台的特性并且获得动态的布局效果,Java将容器内的全部组 ...
- java 布局管理器
容器中的组件的排放方式,就是布局. 常见的布局管理器: FlowLayout(流式布局管理器)//目前最常用的 从左到右的顺序排列. Panel默认的布局管理器. BorderLayout(边界布局管 ...
- Java可视化编程,基于布局管理器的UI设计
在<事件驱动模型>讲述了如何将用户与功能实现代码联系到一起.怎么样便于用户理解和符合用户的使用习惯? 本篇还是就此问题作分析,站在用户角度上分析UI各组件倒底该如何设计呈现. 优秀的UI会 ...
- Qt之自定义布局管理器(QCardLayout)
简述 手动布局另一种方法是通过继承QLayout类编写自己的布局管理器. 下面我们详细来举一个例子-QCardLayout.它由同名的Java布局管理器启发而来.也被称之为卡片布局,每个项目偏移QLa ...
- java基础 布局管理器
概念: 组建在容器(比如JFrame)中的位置和 大小 是由布局管理器来决定的.所有的容器都会使用一个布局管理器,通过它来自动进行组建的布局管理. 种类: java共提供了物种布局管理器:流式布局管理 ...
- Java Swing 第03记 布局管理器
几种Swing常用的布局管理器 BorderLaout 它将容器分为5个部分,即东.南.西.北.中,每一个区域可以容纳一个组件,使用的时候也是通过BorderLayout中5个方位常量来确定组件所在的 ...
- Java基础之创建窗口——使用网格布局管理器(TryGridLayout)
控制台程序. 网格布局管理器可以在容器的矩形网格中布局组件. import javax.swing.*; import java.awt.*; import javax.swing.border.Et ...
- Java基础之创建窗口——使用卡片布局管理器(TryCardLayout)
控制台程序. 卡片布局管理器会生成一叠组件——一个组件放在另一个组件的上面.添加到容器中的第一个组件在堆栈的顶部,因此是可见的,添加的最后一个组件在堆栈的底部.使用默认的构造函数CardLayout( ...
- Java基础之创建窗口——使用边界布局管理器(TryBorderLayout)
控制台程序. 边界布局管理器最多能在容器中放置5个组件.在这种布局管理器中,可以把组件放在容器的任意一个边界上,也可以把组件放在容器的中心.每个位置只能放置一个组件.如果把组件放置在已被占用的边界上, ...
随机推荐
- 怎样设置Word下次打开时跳转到上次阅读的位置
①我们启动Word2013,打开需要阅读的文档,当阅读完毕之后,在指定位置键入一个空格,然后按下Delete键删除,这样相当于是没有作任何更改. ②保存文档,单击文件--另存为,选择好路径,将文档保存 ...
- 开发错误记录2 .MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
刚在调试android程序报 导致直接崩了 .MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed ...
- Linux_cheat命令安装和使用
1.安装python yum -y install python 2.安装epel源.安装pip yum install epel-release -y yum install python ...
- 【UOJ #29】【IOI 2014】holiday
http://uoj.ac/problem/29 cdq四次处理出一直向左, 一直向右, 向左后回到起点, 向右后回到起点的dp数组,最后统计答案. 举例:\(fi\)表示一直向右走i天能参观的最多景 ...
- SurfaceView, TextureView, SurfaceTexture等的区别
SurfaceView, GLSurfaceView, SurfaceTexture以及TextureView是Android当中名字比较绕,关系又比较密切的几个类.本文基于Android 5.0(L ...
- Value和Object的区别
在使用NSMutableDictionary的时候经常会使用setValue forKey与setObject forKey,他们经常是可以交互使用的,代码中经常每一种的使用都有. 1,先看看setV ...
- Access restriction: The type 'BASE64Encoder' is not API
问题的原因好像是这个方法不是安全的,所以不推荐使用,我是在做毕设时要用到的所以就直接用了(毕设要求没有那么严格的要求)
- JQuery获取子节点的第一个元素
$.children()//全部子节点 $.children(':first')//子节点的第一个
- iOS 即时通讯SDK的集成,快速搭建自己的聊天系统
现在的外包项目需求变态的各种各样,今天要做社交,明天要加电商,后天又要加直播了,这些系统如果要自己开发,除非大公司技术和人力都够,不然短时间是几乎实现不了的.所以学会灵活利用市面上的各种SDK是灰常重 ...
- 企业应用系统设计分享PPT
因今天上午需要为团队做一个分享,所以昨晚连夜写了一个<企业应用系统设计>的PPT,因为时间比较短,写的比较急.现在把PPT贴出来,做一个记录.同时也希望对大家有用. 文件我上传到了百度网盘 ...