GUI布局:边界布局、流式布局、网格布局、卡片布局

边界布局

package guiTest;
//JFrame默认的是边界布局BorderLayout
import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class BorderLayoutDemo {
	public static void main(String[] args) {
		JFrame f = new JFrame("边界布局BorderLayout");
		//JFrame的默认LayoutManager为BorderLayout
	//	f.setLayout(new BorderLayout());//可以不写,默认的就是流式布局
		JButton btn =  new JButton("北");
		f.add(btn,BorderLayout.NORTH);

		btn=new JButton("南");
		f.add(btn,BorderLayout.SOUTH);

		btn=new JButton("东");
		f.add(btn,BorderLayout.EAST);

		btn=new JButton("西");
		f.add(btn,BorderLayout.WEST);

		btn=new JButton("中");
		f.add(btn,BorderLayout.CENTER);

		f.pack();//也可以用f.setSize(222,222);来进行设置
		f.setVisible(true);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

}

流式布局

package guiTest;

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class CardLayoutDemo {
	private static JPanel p;
	public static void main(String[] args) {
		JFrame f = new JFrame("卡片布局CardLayout");
		p=new JPanel();
		//设置p的布局管理器为卡片布局CardLayout
		p.setLayout(new CardLayout());

		//新建两个JPanel
		JPanel p1 = new JPanel();
		JPanel p2 = new JPanel();
		JLabel lb = new JLabel("第一个面板");
		p1.add(lb);//面板里面加标签
		lb=new JLabel("第二个面板");
		p2.add(lb);//面板里面加标签

		//将新建的两个JPanel面板添加到p中
		p.add(p1,"first");
		p.add(p2,"second");

		//设置默认显示first所对应的JPanel p1
		((CardLayout)p.getLayout()).show(p,"first");

		JButton btn = new JButton("改变面板");
		btn.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//当点击'改变面板'时,显示second对应的JPanel p2
				((CardLayout)p.getLayout()).show(p,"second");
			}
		});
		f.add(btn,BorderLayout.NORTH);
		f.add(p,BorderLayout.CENTER);
		f.setSize(400,150);//f.pack();

		f.setVisible(true);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

}

网格布局

package guiTest;

import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class FlowLayoutDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JFrame f = new JFrame("流式布局FlowLayout");
		f.setLayout(new FlowLayout());
		for(int i=0;i<7;i++)
		{
			JButton btn=new JButton("Button"+i);
			f.add(btn);
		}
		f.setSize(300,250);
		//f.pack();默认边框设置宽度和长度刚刚好的样子
		f.setVisible(true);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	}

}

卡片布局

package guiTest;

import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class GirdLayoutDemo {

	public static void main(String[] args) {
		JFrame f = new JFrame("网格布局GirdLayout");
		//设置f的布局管理器为3行3列的GirdLayout组件间水平与垂直间距为5
		f.setLayout(new GridLayout(3,3,5,5));
		for(int i=1;i<10;++i)
		{
			JButton btn = new JButton(String.valueOf(i));
			f.add(btn);
		}
		f.pack();
		f.setVisible(true);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	}

}
时间: 2024-12-25 11:55:03

GUI布局:边界布局、流式布局、网格布局、卡片布局的相关文章

移动端布局学习之流式布局1

1.移动端基础 1.1 浏览器现状 国内的UC和QQ 百度等手机浏览器都是根据Webkit修改过来的内核,国内目前尚无自主研发的内核,就像国内的手机系统基本上都是局域安卓修改开发的一样. 意思就是:兼容移动端主流浏览器 处理Webkit内核浏览器即可. 1.2 手机屏幕的现状 移动端设备屏幕尺寸非常多,碎片化严重 Android设备有多种分辨率480*480 480*854 540*960 720*1280 等等 近年来iPhone的碎片化也严重了 其设备的主要分辨率有 640*960 640*

瀑布流式布局

今天终于搞懂了瀑布流式布局,哈哈,总结下 瀑布流式布局分为两种类型:1.每一列都限定宽度不限定高度的布局(使用浮动)2.宽度不是写死的,是根据页面的放大缩小变化的(定位布局) 瀑布流式布局的重点是:每个新加载的模块都应该显示在原有模块高度最小的下方 注意事项: 图片:接收到的数据在插入到文档的过程中,可能会因为图片的加载速度影响Li的最小高度,可以等图片加载完触发某个事件,再继续加载图片(还未研究出):可以设置图片的相对宽高; 什么时候鼠标滚动的时候继续加载数据:当最小高度的模块显示在文档可视区

布局的几种方式(静态布局、自适应布局、流式布局、响应式布局、弹性布局)

一.静态布局(static layout) 即传统Web设计,网页上的所有元素的尺寸一律使用px作为单位. 1.布局特点 不管浏览器尺寸具体是多少,网页布局始终按照最初写代码时的布局来显示.常规的pc的网站都是静态(定宽度)布局的,也就是设置了min-width,这样的话,如果小于这个宽度就会出现滚动条,如果大于这个宽度则内容居中外加背景,这种设计常见于pc端. 2.设计方法 PC:居中布局,所有样式使用绝对宽度/高度(px),设计一个Layout,在屏幕宽高有调整时,使用横向和竖向的滚动条来查

流式布局&amp;固定宽度&amp;响应式&amp;rem

我们现在在切页面布局的使用常用的单位是px,这是一个绝对单位,web app的屏幕适配有很多中做法,例如:流式布局.限死宽度,还有就是通过响应式来做,但是这些方案都不是最佳的解决方法. 1.流式布局: 例如流式布局的解决方案有不少弊端,它虽然可以让各种屏幕都适配,但是显示的效果极其的不好,因为只有几个尺寸的手机能够完美的显示出视觉设计师和交互最想要的效果. 他们在页面布局的时候都是通过百分比来定义宽度,但是高度大都是用px来固定住,所以在大屏幕的手机下显示效果会变成有些页面元素宽度被拉的很长,但

关于静态布局、自适应布局、流式布局、响应式布局、弹性布局的一些概念

一.静态布局(Static Layout)即传统Web设计,网页上的所有元素的尺寸一律使用px作为单位. 1.布局特点:不管浏览器尺寸具体是多少,网页布局始终按照最初写代码时的布局来显示.常规的pc的网站都是静态(定宽度)布局的,也就是设置了min-width,这样的话,如果小于这个宽度就会出现滚动条,如果大于这个宽度则内容居中外加背景,这种设计常见与pc端.2.设计方法: PC:居中布局,所有样式使用绝对宽度/高度(px),设计一个Layout,在屏幕宽高有调整时,使用横向和竖向的滚动条来查阅

Android流式布局实现

查看我的全部开源项目[开源实验室] 欢迎加入我的QQ群:[201055521],本博客客户端下载[请点击] 摘要 新项目用到了一种全新布局----Android标签流式布局的功能,正好一直说给大家讲自定义控件的实现,今天就为大家讲一种android流式布局的实现. 本文原创,转载请注明地址:http://blog.kymjs.com/ 正文 在日常的app使用中,我们会在android 的app中看见热门标签等自动换行的流式布局,今天,我们就来看看如何自定义一个类似热门标签那样的流式布局吧(源码

页面布局的几种方式(静态化布局,流式布局,自适应布局,响应式布局,弹性布局)

一.静态布局(static layout) 即传统Web设计,网页上的所有元素的尺寸一律使用px作为单位. 1.布局特点 不管浏览器尺寸具体是多少,网页布局始终按照最初写代码时的布局来显示.常规的pc的网站都是静态(定宽度)布局的,也就是设置了min-width,这样的话,如果小于这个宽度就会出现滚动条,如果大于这个宽度则内容居中外加背景,这种设计常见于pc端. https://developers.google.com/search/mobile-sites/mobile-seo/respon

(html+css)_移动端适配方案一(流式布局)

一.前言 二.主要内容 1.移动端面对的问题:因为手机屏幕和尺寸不一样,当我们用不同手机设备浏览的时候为了提高用户体验必须要做移动端适配 2.解决方案一: 流式布局 + viewport视口进行设置 流式布局:就是百分比布局,非固定像素,内容向两侧填充,理解成流动的布局,称为流式布局*/ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <

布局管理器之CardLayout(卡片布局管理器)

对于选项卡这个概念大家可能不会陌生,就是在一个窗口中可以切换显示多页不同的内容,但同一时间只能是其中的某一页可见的,这样的一个个的页面就是选项卡. CardLayout就是类似的这样一个布局管理器,它能够让多个组件共享同一个显示空间,共享空间的组件之间的关系就像重叠在一起的一幅扑克牌,组件重叠在一起,初始时显示该空间中第一个组件,通过CardLayout类提供的方法可以切换该空间中显示的组件. 下面我们来看一个例子,实现CardLayout布局管理器的使用. 创建一个使用CardLayout布局