- 浏览: 135496 次
- 性别:
- 来自: 南宁
文章分类
- 全部博客 (137)
- J2SE API基础 (19)
- JAVA Structure/Algorithm (1)
- 设计模式及UML(pd/rose) (11)
- SSH (32)
- JPA/EJB/JSF (0)
- Jsp/Servlet (1)
- XML (0)
- DWR/Dojo/JQuery(Ajax) (1)
- Js/css/HTML (3)
- Java报表开发 (0)
- 网络协议及认证加密算法 (2)
- Java多线程网络编程 (1)
- Lucence (0)
- Oracle Developer (5)
- Oracle DBA (3)
- mysql/SQLServer/DB2 (5)
- Weblogic配置/调试 (0)
- Tomcat/JBoss/Websphere (10)
- Linux/Unix操作部署及shell编程 (9)
- C/C++编程 (4)
- 系统分析 (0)
- 项目管理(CVS&风险控制) (0)
- JUnit单元和J2EE集成测试 (2)
- 软设/招聘 (6)
- IT English (8)
- Mathematics/Data Mining (1)
- Android开发爱好 (1)
- Flash制作爱好 (0)
- Professional wisdom (4)
- 序言 (1)
- 聊天记录 (0)
- 理想 (3)
- 承诺 (0)
- oifuslfjsldkj_chatrecord (1)
最新评论
-
blues1021:
dafeiwudi 写道什么叫外频和陪频啊?一般电脑都显示主频 ...
计算机组成原理和结构-时钟周期、机器周期、总线周期、指令周期含义和关系 -
dafeiwudi:
什么叫外频和陪频啊?一般电脑都显示主频,它不表示运算速递,我们 ...
计算机组成原理和结构-时钟周期、机器周期、总线周期、指令周期含义和关系
一、实用源程序,可以用于自己的类库中调用相应的setConstraints方法即可迅速地实现界面良好布局
:
package ioutil;
import javax.swing.*;
import java.awt.*;
public class EasyGridLayout extends GridBagLayout{
public void setConstraints(JLabel c, int row, int col,
int width, int height){
finishSet(c, row, col, width, height,
0, 0,
GridBagConstraints.NONE,
GridBagConstraints.NORTHWEST);
}
public void setConstraints (JButton c, int row, int col,
int width, int height){
finishSet (c, row, col, width, height,
0,0,
GridBagConstraints.NONE,
GridBagConstraints.CENTER);
}
public void setConstraints (JTextField c, int row, int col,
int width, int height){
finishSet (c, row, col, width, height,
100, 0,
GridBagConstraints.HORIZONTAL,
GridBagConstraints.NORTHWEST);
}
public void setConstraints (JScrollPane c, int row, int col,
int width, int height){
finishSet (c, row, col, width, height,
100, 100,
GridBagConstraints.BOTH,
GridBagConstraints.NORTHWEST);
}
public void setConstraints (JTextArea c, int row, int col,
int width, int height){
finishSet (c, row, col, width, height,
100, 100,
GridBagConstraints.BOTH,
GridBagConstraints.NORTHWEST);
}
public void setConstraints (JList c, int row, int col,
int width, int height){
finishSet (c, row, col, width, height,
100, 100,
GridBagConstraints.BOTH,
GridBagConstraints.NORTHWEST);
}
public void setConstraints (JCheckBox c, int row, int col,
int width, int height){
finishSet (c, row, col, width, height,
0, 0,
GridBagConstraints.HORIZONTAL,
GridBagConstraints.NORTHWEST);
}
public void setConstraints (JRadioButton c, int row, int col,
int width, int height){
finishSet (c, row, col, width, height,
0, 0,
GridBagConstraints.HORIZONTAL,
GridBagConstraints.NORTHWEST);
}
public void setConstraints (JPanel c, int row, int col,
int width, int height){
finishSet (c, row, col, width, height,
100, 100,
GridBagConstraints.BOTH,
GridBagConstraints.NORTHWEST);
}
private void finishSet (Component c, int y, int x, int w, int h,//
gridx,gridwidth4个单位都是网格
int weightx, int weighty, //
分配额外空间比例给行列
,以上三种都是如何将网格分配给组件。
int fill, int anchor){//
组件大于或小于网格时伸缩或放置位置。
在特定网格区域内设置伸缩,放置,内边距。
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets.bottom = 5; /
/组件与放置它的grix、gridy之间的偏移,单位为px.
gbc.insets.left = 5;
gbc.insets.right = 5;
gbc.insets.top = 5;
gbc.insets.left = 5;
gbc.insets.right = 5;
gbc.insets.top = 5;
gbc.weightx = weightx;
gbc.weighty = weighty;
gbc.fill = fill;
gbc.anchor = anchor;
gbc.gridx = x-1;
gbc.gridy = y-1;
gbc.gridwidth = w;
gbc.gridheight = h;
setConstraints(c, gbc);//
}
}
二、
测试类代码,
为了了解上述的源程序所写:
package ioutil;
import javax.swing.*;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
public class GridBagLayoutInstance extends JPanel{
public GridBagLayoutInstance() {
this.setLayout(new GridBagLayout());
this.setOpaque(true);//the component should be opaque透明的。
GridBagConstraints c = new GridBagConstraints();
JButton b = new JButton ("Button One");
c.gridx = 0 ;//控件左上角坐标
c.gridy = 0;
c.gridwidth = 2;//所占cell个数
c.gridheight = 1;
this.add(b,c);//button 1 added
c.gridy++;
b= new JButton("Button Two");
this.add(b,c);
c.gridx = 2;
c.gridy = 0;
c.gridwidth = 1;
c.gridheight = 2;
b = new JButton("Button Three");
this.add(b,c);
c.gridx = 3;
c.gridy = 0;
c.gridwidth = 1;
c.gridheight = 2;
//c.insets.top=10;
//c.insets.left=10;
//c.fill=GridBagConstraints.HORIZONTAL;
//c.anchor=GridBagConstraints.ABOVE_BASELINE;
b = new JButton("Button Fourth");
this.add(b,c);
c.gridx = 0 ;
c.gridy = 2;
c.gridwidth = 4;
c.gridheight =1 ;
this.add(new JTextField(35),c);
}
public static void main(String[] args) {
JFrame f = new JFrame("GridBagLayout Instance ");
JPanel p = new GridBagLayoutInstance();
f.getContentPane().add(p);
f.pack();
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//f.setSize(300,400);
f.setVisible(true);
} }
三、拓展学习GridBagConstraints类及测试类结果:
因为GridBagLayout提供的强大的功能,可以将组件布局在大小、个数不同的网格中,所以要借助一个聚合类GridBagConstriants类,下面关于GridBagConstriants类众多常量设置的解析:
测试原来界面:
first:如何将网格分配给组件
:
1.gridx字段:组件的左上角坐标单位为单元格,初始为(0,0)坐标
gbc.gridx=0;
gbc.gridy=0;
gbc.gridx = x-1;
gbc.gridy = y-1;
2.gridwidth gridheight字段:组件在长宽覆盖的单元格的个数
gbc.gridwidth = 2;
gbc.gridheight = 1;
3.weightx weighty,指定如何分布额外的水平、垂直空间给行列用于显示大组件
,全部将额外行列空间分配为100,0时为不分配给行列,将额外的分配给行列之间或者在边距出。默认为0.
gbc.weightx = weightx
gbc.weighty = weighty;
将两个同时设置为0,100,30时对比:
sencond:在特定网格区域内设置伸缩,放置,内边距:
4.insets.left字段:组件与放置它的grix、gridy之间的偏移,单位为px但不用写出
.
gbc.insets.left=10;
gbc.insets.right=10;
jbutton.insets.top
jbutton.insets.bottom
都设置为10时显示:
5.fill字段:指定组件如何伸缩填充包含它的网格区域。一般是指组件大于它的网格时。
gbc.fill=GridBagConstraints.NONE HORIZONTAL VERTICAL BOTH,也可以是用户传递进去的数值。
BOTH设置情形:
HORIZONTAL设置情形:
6.anchor字段:它可以确定在显示区域中放置组件的位置,
当组件小于它的网格时。默认为absolute的CENTER.
(1)absolute 绝对值
gbc.anchor=Constraints.CENTER;
gbc.anchor=Constraints.NORTHWEST;
gbc.anchor=Constraints.NORTH;
EAST、SOUTHEAST、SOUTH、SOUTHWEST、WEST 和 NORTHWEST
NORTHWEST设置:
(2)orientation relative基于方向的值
gbc.anchor=Constraints.PAGE_START;
gbc.anchor=Constraints.LINE_START;
gbc.anchor=Constraints.LINE_END;
PAGE_START, PAGE_END, LINE_START, LINE_END, FIRST_LINE_START, FIRST_LINE_END, LAST_LINE_START and LAST_LINE_END.
PAGE_START设置:
LINE_START设置:
(3)baseline relvative 相对于基线的值
gbc.anchor=Constraints.BASELINE;
gbc.anchor=Constraints.ABOVE_BASELINE;
gbc.anchor=Constraints.BELOW_BASELINE_LEADING;
BASELINE设置:
ABOVE_BASELINE设置:
发表评论
-
java字符串按字符逆转和按单词逆转
2011-11-26 16:21 1537字符串的处理,经常在各类考试中用到,在网上搜索了下这方面的资料 ... -
JScrollPane和JTextArea,JMenuBar、JMenu和JMenuItem之间的组合关系
2011-08-09 18:19 1023package menuta; import java.aw ... -
利用EasyGridLayout API的帮助文档
2011-08-09 18:17 666一、对上一篇文章给出的EasyGridLayout源程序,加载 ... -
Java2 五种界面布局类和实际中的使用
2011-08-09 18:14 1101(JPanel)Panel是一个轻量级的容器,由于不是顶层的容 ... -
Java2中的框架类和容器类、容器类与布局类的聚合关系
2011-08-09 18:12 880一: 布局中的JFrame与JPanel、Container ... -
Java2事件处理模型的解析和注意
2011-08-09 18:11 743/*<pre>伪源代码*/ DemoFlowLa ... -
Java2 I/O类使用总结(图解)
2011-08-09 17:58 589一、对象的读写(序列化):ObjectIO.jpg ... -
规范注释的说明形式和位置、@param参数、<pre>源代码示例
2011-08-09 17:52 1226/** * Returns a string that ... -
javaI/O中FileOut/InputStream借助ObjectOut/IntputStream写入和读取序列化之嵌套原理
2011-08-09 17:51 1045一、FileOutputStream和ObjectOutpu ... -
用==和equals测试java对象的引用、浅拷贝、深拷贝和初始化区别
2011-08-09 17:44 1081测试主要部分代码:public class Employee ... -
从低到高强制转换取模截断位数导出的java基本类型复习
2011-08-09 17:39 967一、强制类型转换中的低到高强制转换取模截断位数本质 ... -
java项目结构组织及类、成员的访问限定符
2011-04-08 20:05 1041main:一个项目中可有多个main方法但是,要选 ... -
类内、类外静态非静态方法的调用
2011-04-08 20:11 1026一:类内部 1.调用静态性相同的直接用。 2 ... -
hashcode方法
2011-04-08 20:17 591hashcode()是干什么用的? 首先hashcode是哈 ... -
JAVA中的接口与抽象类的区别记忆
2011-04-08 20:31 664接口与抽象类:抓住 ... -
各内部类的作用、定义、成员限制、访问总结
2011-04-09 00:56 788内部类的作用总括: 1.内部类可以独立的继承一个类和 ... -
java.util.StringTokenizer
2011-04-09 18:40 525一:单词: tokenization 标志化(token ... -
java dos下运行(有包)
2011-04-15 01:25 9761.使用notepad打开记事本编写类注意写正确。 publ ...
相关推荐
GridBagLayout布局管理器:主要是关于java中GridBagLayout的布局,该文档详细描写的GridBagLayout的具体用法。
这是为初初学者提供练习的代码,具有很强的指导效果哈~~~
网袋布局管理器--GridBagLayout使用介绍
原创,为完整java工程包。根据html的table标签作为配置文件,进行swing ...具体思想是将tabel td等标签相关元素和属性映射成GridBagConstraints的属性值,将布局独立到配置文件,从而简化代码中关于布局的复杂度
深入浅出介绍Java Swing编程中的GridBagLayout布局。
本文通过代码示例的方式介绍了Swing的GridBagLayout布局样式的应用,不拘泥于JDK文档教条方式的陈述,图形效果图与文字相结合,讲解直观而浅显易懂,另外,示例代码中还包含了BorderLayout、FlowLayout等布局的应用...
主要介绍了Java Swing GridBagLayout网格袋布局的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Java Swing GridBagLayout,很详细的Demo,对GridBagLayout如何使用做全面的讲解
java网格包GridBagLayout布局管理器专题.pdf
java网格包GridBagLayout布局管理器专题借鉴.pdf
java网格包GridBagLayout布局管理器专题的分析.pdf
GridBagLayout是java里面最重要的布局管理器之一,可以做出很复杂的布局,可以说GridBagLayout是必须要学好的的,需要的朋友可以了解下
java swing布局管理器实例之gridbaglayout,实现左右选择框
NULL 博文链接:https://chenlinbo.iteye.com/blog/610417
咋也不用愁,老师布置的界面设计的作业了
matlab开发-GridBagLayout。一个控制图形/uipanel/uicontainer的布局和大小的matlab类。
用java写的一个简单的计算器,包含源码、素材、说明
4.5 GridBagLayout卡式布局 4.6 BoxLayout盒式布局 5、菜单步骤 6、对话框设计 6.1 JOptionPane对话框 6.2 JDialog对话框 文字与图形处理 7.1 文本和字体 7.2 简单图形绘制 7.3 颜色 7.4 图像处理 七、网络 1...
layout.GridBagLayout 和 layout.ScrollableGridBagLayout 是控制图形/upanel/uicontainer 的布局和调整大小的 MATLAB 类。 此类帮助 MATLAB GUI 开发人员设计复杂的图形用户界面,而无需计算或执行初始布局或编写...