当前位置: 首页 > java >正文

java layout_java layout种类和用途。要详细

展开全部

建议复杂布32313133353236313431303231363533e58685e5aeb931333330333662局使用GridBagLayout,虽然操作比较复杂,但是稍微研究下,可以给你的GUI设计出别样风格

GridBagLayout的使用:是java中最有弹性但也是最复杂的一种版面管理器。它只有一种构造函数,但必须配合

GridBagConstraints才能达到设置的效果。

GridBagLayout的类层次结构图:

java.lang.Object

--java.awt.GridBagLayout

构造函数:

GirdBagLayout()建立一个新的GridBagLayout管理器。

GridBagConstraints()建立一个新的GridBagConstraints对象。

GridBagConstraints(int gridx,int gridy,int gridwidth,int gridheight,double weightx,double weighty,

int anchor,int fill, Insets insets,int ipadx,int ipady)建立一个新的GridBagConstraints对象

,并指定其参数的值。

参数说明:

gridx,gridy:设置组件的位置,gridx设置为GridBagConstraints.RELATIVE代表此组件位于之前所加入组件的右边。

若将gridy设置为GridBagConstraints.RELATIVE代表此组件位于以前所加入组件的下面。建议定义出

gridx,gridy的位置,以便以后维护程序。表示放在几行几列,gridx=0,gridy=0时放在0行0列。

gridwidth,gridheight:用来设置组件所占的单位长度与高度,默认值皆为1。你可以使用GridBagConstraints.REMAINDER常

量,代表此组件为此行或此列的最后一个组件,而且会占据所有剩余的空间。

weightx,weighty:用来设置窗口变大时,各组件跟着变大的比例,当数字越大,表示组件能得到更多的空间,默认值皆为0。

anchor: 当组件空间大于组件本身时,要将组件置于何处,有CENTER(默认值)、NORTH、NORTHEAST、EAST、SOUTHEAST、

WEST、NORTHWEST可供选择。

insets:设置组件之间彼此的间距,它有四个参数,分别是上,左,下,右,默认为(0,0,0,0).

ipadx,ipady:设置组件内的间距,默认值为0。

我们以前提过,GridBagLayout里的各种设置都必须通过GridBagConstraints,因此当我们将GridBagConstraints的参数都设置

好了之后,必须new一个GridBagConstraints的对象出来,以便GridBagLayout使用。

例子:

GridBagLayoutDemo.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class GridBagLayoutDemo{

public GridBagLayoutDemo(){

JButton b;

GridBagConstraints c;

int gridx,gridy,gridwidth,gridheight,anchor,fill,ipadx,ipady;

double weightx,weighty;

Insets inset;

JFrame f=new JFrame();

GridBagLayout gridbag=new GridBagLayout();

Container contentPane=f.getContentPane();

contentPane.setLayout(gridbag);

b=new JButton("first");

gridx=0;

gridy=0;

gridwidth=1;

gridheight=1;

weightx=10;

weighty=1;

anchor=GridBagConstraints.CENTER;

fill=GridBagConstraints.HORIZONTAL;

inset=new Insets(0,0,0,0);

ipadx=0;

ipady=0;

c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,

fill,inset,ipadx,ipady);

gridbag.setConstraints(b,c);

contentPane.add(b);

b=new JButton("second");

gridx=1;

gridy=0;

gridwidth=2;

gridheight=1;

weightx=1;

weighty=1;

anchor=GridBagConstraints.CENTER;

fill=GridBagConstraints.HORIZONTAL;

inset=new Insets(0,0,0,0);

ipadx=50;

ipady=0;

c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,

fill,inset,ipadx,ipady);

gridbag.setConstraints(b,c);

contentPane.add(b);

b=new JButton("third");

gridx=0;

gridy=1;

gridwidth=1;

gridheight=1;

weightx=1;

weighty=1;

anchor=GridBagConstraints.CENTER;

fill=GridBagConstraints.HORIZONTAL;

inset=new Insets(0,0,0,0);

ipadx=0;

ipady=50;

c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,

fill,inset,ipadx,ipady);

gridbag.setConstraints(b,c);

contentPane.add(b);

b=new JButton("fourth");

gridx=1;

gridy=1;

gridwidth=1;

gridheight=1;

weightx=1;

weighty=1;

anchor=GridBagConstraints.CENTER;

fill=GridBagConstraints.HORIZONTAL;

inset=new Insets(0,0,0,0);

ipadx=0;

ipady=0;

c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,

fill,inset,ipadx,ipady);

gridbag.setConstraints(b,c);

contentPane.add(b);

b=new JButton("This is the last button");

gridx=2;

gridy=1;

gridwidth=1;

gridheight=2;

weightx=1;

weighty=1;

anchor=GridBagConstraints.CENTER;

fill=GridBagConstraints.HORIZONTAL;

inset=new Insets(0,0,0,0);

ipadx=0;

ipady=50;

c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,

fill,inset,ipadx,ipady);

gridbag.setConstraints(b,c);

contentPane.add(b);

f.setTitle("GridBagLayout");

f.pack();

f.setVisible(true);

f.addWindowListener(

new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

}

);

}

public static void main(String[] args){

new GridBagLayoutDemo();

}

}

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

http://www.xdnf.cn/news/11495.html

相关文章:

  • blog转移
  • HTML学生个人网站作业设计:HTML做一个公司官网首页页面(纯html代码)
  • 空间参考系相关概念
  • 2022起重机司机(限门式起重机)试题及模拟考试
  • GB2312汉字拼音对照表
  • 32位操作系统在哪里下载java_微信32位版本官方下载-微信32位手机版下载 v7.0.20 安卓版...
  • 大一python期末简答题,大一python题库及答案
  • 4.1svn安装与使用
  • 理解Linux内核空间与用户空间
  • seaborn中的色板02详解
  • 仙五前补充资料
  • 2015届互联网名企校招网址一览表
  • 有刷QQ会员和7砖的软件?
  • 关于WEBQQ的实现(一)
  • 一条命令轻松解决 「应用程序 “xxx” 不能打开」的问题
  • 信息检索:搜索引擎---怎样量化评价搜索引擎的结果质量
  • 剑灵南天国服务器位置,剑灵南天国实验室申请地址_剑灵南天国实验室申请资格答案_游戏堡...
  • ios项目icon和default 等相关图标命名规则和大小设置
  • 央视网站“被黑”的技术性分析
  • 500G JAVA视频网盘分享 (JEECG开源社区)
  • HBase 集群问题集 永久RIT(Region-In-Transition)问题
  • APP账号密码传输安全分析
  • 记渣打银行科营中心的面试
  • 【自测】100道linux运维测试题,80分以上就是大神了
  • 【智商都是硬伤】数字逻辑推理题
  • 软考网络工程师总结
  • 部署篇 | MatrixOne与MySQL全面对比
  • 【正点原子FPGA连载】第二章 实验平台简介 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
  • 思维练习题
  • 2023除夕倒计时~HTML代码