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个组件.在这种布局管理器中,可以把组件放在容器的任意一个边界上,也可以把组件放在容器的中心.每个位置只能放置一个组件.如果把组件放置在已被占用的边界上, ...
随机推荐
- [Google Guava]学习--新集合类型Multiset
Guava提供了一个新集合类型Multiset,它可以多次添加相等的元素,且和元素顺序无关.Multiset继承于JDK的Cllection接口,而不是Set接口. Multiset主要方法介绍: a ...
- 关于idea 修改jsp文件后不能生效
打开server 的配置界面: 其中 修改on update Action 为 Redeploy On frame deactivation 为Update classes and resources
- CNN中的BN
w权值的初始化,之前最好的方法是 也就是输入神经元和输出神经元中随机一个数,然后除以输入神经元的个数开根号 因为全连接层波动较大,所以加在FC后面 这里Y,b是为了对信息的一个还原
- poj2762 缩点+topo排序
Going from u to v or from v to u? Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 16486 ...
- linux 下远程连接windows
安装软件 sudo apt-get install rdesktop 连接windows 然后进入windows登陆界面 输入应户名密码后就进入windows了 注意的是 参数-f是全屏的意思 然后 ...
- bzoj 3172 AC自动机
初学AC自动机,要先对于每一个模式串求出来trie树,在此基础上构建fail指针,然后在trie树加上失配边构建出整张trie图. AC自动机的原理和KMP差不多,一个节点的fail指针就是指向tri ...
- Leetcode Bulb Switcher
There are n bulbs that are initially off. You first turn on all the bulbs. Then, you turn off every ...
- 【BZOJ-1565】植物大战僵尸 拓扑排序 + 最小割
1565: [NOI2009]植物大战僵尸 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1972 Solved: 917[Submit][Statu ...
- Linux Overflow Vulnerability General Hardened Defense Technology、Grsecurity/PaX
Catalog . Linux attack vector . Grsecurity/PaX . Hardened toolchain . Default addition of the Stack ...
- visual studio 2010 C#编程时 没有.NET framework 2.0目标框架的解决办法
解决办法是安装Framework .NET 3.5 Sp1 因为visual studio 2010是依赖.NET Framework 3.5 Sp1来识别其它版本的.NEt framework的. ...