首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载  ┆ 端午节祝福 
设为首页
加入收藏
联系我们
热门关键字: .net应用  操作系统  Dreamweaver  WinRAR  网络推广
高级搜索
您当前的位置: 主页>JAVA专区>J2SE>布局管理器OverlayLayout实现PhotoShop工具面板效果
布局管理器OverlayLayout实现PhotoShop工具面板效果
来源: 发布时间:2008-06-23 发布人: 浏览: 人次   字体: [ ]  

OverlayLayout是用于排列重叠组件的布局管理器。它的用途是以一些对齐的点为基准将一些组件层叠的放置在布局容器中。

组件的横轴和纵轴的对齐点介于0.0和1.0之间。横轴(X轴)上0.0代表组件的左侧面,1.0代表组件的右侧面;纵轴(Y轴)上0.0和1.0分别代表组件的顶部和底部。

构造函数
public OverlayLayout(Container target)

因为构造函数不会为target对象安装结果布局管理器,所以我们还必须调用setLayout()来完成此功能。

JPanel p1 = new JPanel();
OverlayLayout overlay = new OverlayLayout(p1);
p1.setLayout(overlay);
在OverlayLayout布局管理器中,每个组件都有一对横纵坐标值,每个组件的位置只和它本身的横纵坐标值有关,换句话说就是组件以他自己的位置作为基准,横轴上0.0和1.0分别代表组件的左侧面和右侧面;纵轴上0.0和1.0分别代表组件的顶部和底部,和容器位置无关。如果一个组件的alignmentX属性设置为0.5,原本左侧面的位置对应0.0,现在变成了0.5,那么,现在组件的位置就要向左移动width/2的距离,使左侧面的位置对应现在的0.0。纵轴亦是如此,明白了吗?

为了容易理解,我们来看《Java Swing》中关于OverlayLayout的一段样例程序,它可以编译运行。如图,你可以在输入框中调节容器中3个按钮的X,Y轴的值来看他们在容器中的位置是怎样改变的,多试几次,你就可以完全理解OverlayLayout。

// OverlayTest.java
// A test of the OverlayLayout manager allowing experimentation.
//
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class OverlayTest extends JFrame {

    public OverlayTest() {
        super("OverlayLayout Test");
        setSize(500, 300);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        final Container c = getContentPane();
        c.setLayout(new GridBagLayout());

        final JPanel p1 = new GridPanel();
        final OverlayLayout overlay = new OverlayLayout(p1);
        p1.setLayout(overlay);

        final JButton jb1 = new JButton("B1");
        final JButton jb2 = new JButton("B2");
        final JButton jb3 = new JButton("B3");

        Dimension b1 = new Dimension(60, 50);
        Dimension b2 = new Dimension(80, 40);
        Dimension b3 = new Dimension(100, 60);

        jb1.setMinimumSize(b1);
        jb1.setMaximumSize(b1);
        jb1.setPreferredSize(b1);
        jb2.setMinimumSize(b2);
        jb2.setMaximumSize(b2);
        jb2.setPreferredSize(b2);
        jb3.setMinimumSize(b3);
        jb3.setMaximumSize(b3);
        jb3.setPreferredSize(b3);

        SimpleReporter reporter = new SimpleReporter();
        jb1.addActionListener(reporter);
        jb2.addActionListener(reporter);
        jb3.addActionListener(reporter);

        p1.add(jb1);
        p1.add(jb2);
        p1.add(jb3);

        JPanel p2 = new JPanel();
        p2.setLayout(new GridLayout(2,6));
        p2.add(new JLabel("B1 X", JLabel.CENTER));
        p2.add(new JLabel("B1 Y", JLabel.CENTER));
        p2.add(new JLabel("B2 X", JLabel.CENTER));
        p2.add(new JLabel("B2 Y", JLabel.CENTER));
        p2.add(new JLabel("B3 X", JLabel.CENTER));
        p2.add(new JLabel("B3 Y", JLabel.CENTER));
        p2.add(new JLabel(""));


共2页: 上一页 1 [2] 下一页
↓下一篇:没有了
相 关 文 章   发布商链接
·JAVA最为基础知识精华总结
·用Swing实现数据表格功能
·利用Java实现zip压缩/解压缩
·如何用Java获得IP地址
·什么时候用抽象类,什么时候用接口?
·JAVA通过JNI调用本地C语言方法
·Java开发中的事件驱动模型实例详解...
·如何使用Java操作Windows系统注册表
·为Java程序中添加播放MIDI音乐功能
·了解Java 语言中的IO系统
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·如何安装安装java JDK以及正...
·java多线程通信机制以及yield...
·jar文件运行中发生ClassNotFo...
·详例实现java调用ORACLE的存...
·java读取和修改ini配置文件实
·如何用java实现快速排序算法...
·java中的字节流和字符流的存...
·Java调用SQL Server存储过程(
·java垃圾回收机制的意义及其...
·Java网络数据流解析的三种方...
·Java在Linux下处理图形遇到问
·在Linux上远程部署Java应用程
·用JAVA实现文本形式的树状结...
·JAVA冒泡排序法代码小实例
·java实现输出加密码保护的exc...
热 门 文 章
·JAVA冒泡排序法代码小实例
·怎么打包成jar文件步骤
·Java编写的模拟ATM取款机程序...
·Java操作Word, Excel文档示例
·什么时候用抽象类,什么时候用...
·用JAVA实现文本形式的树状结...
·java实现输出加密码保护的exc...
·实例解说java 反射机制
·Java调用SQL Server存储过程(...
·java中(overload)重载与(over...
·利用Java实现zip压缩/解压缩
·JAVA最为基础知识精华总结
·利用Java 3D技术播放动画之JM...
·基于java的图片文件格式转换...
·Java实现图像编码输出的示例...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .