----------------siwuxie095

根面板 contentPane 的默认布局为 Border Layout,将其

切换为 Absolute Layout

Absolute Layout 即 绝对布局,即 它没有任何的限制,可以

在界面中任意摆放控件的位置

在将控件拖动到面板上时,会出现参考线,参考线仅仅是

为了在界面中摆放元素时给出参考,而不具有任何实质性

的吸附功能

「如果不使用参考线,可以自由的将控件移动到任何位置」

当在面板中摆放好某控件,该控件的坐标和大小都是固定的,

不会随窗体的缩放而产生任何变化

在绝对布局的情况下,可以在代码中任意修改元素的坐标和大小

向 contentPane 中添加一个 JLabel,将其文本(text)改为:

This is a label,Rename 为:label

在 Source 中修改代码:

效果如下:

向 contentPane 中添加一个 JButton,将其文本(text)改为:

Run,Rename 为:btnRun

在绝对布局中,虽然不会有布局管理器帮助摆放,但是可以提供

最佳的灵活性

如:可以编写一个线程来为当前的控件提供动画(放大缩小、位置移动)

为 JButton 添加鼠标点击事件,当点击 Run 时,JLabel 上下浮动

JButton btnRun = new JButton("Run");

btnRun.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent arg0) {

//创建一个 SwingWoker 线程,指定泛型为 String 和 Integer

//要覆盖 doInBackground() 和 process() 方法

//创建完成后,需要调用 execute() 方法,将它运行

new SwingWorker<String, Integer>() {

//获取 Y 的原坐标,需要将 label 的声明转移到类中

int originalY=label.getY();

@Override

protected String doInBackground() throws Exception {

while (true) {

//每隔 50 毫秒执行一次

Thread.sleep(50);

年到当前时间的毫秒值

//先从整型转换成浮点型,又从浮点型转换成整型

// 100 表示运动的快慢(越小速度越快,反比),

// 20 表示运动的幅度(越小幅度越小,正比)

//将值 publish() 到 process() 中

publish((int)(Math.sin(System.currentTimeMillis()/100)*20));

}

}

@Override

protected void process(List<Integer> chunks) {

//从 chunks 中把值取出来

for (int dynamicY : chunks) {

//X 坐标不变,Y 坐标变化,为标签做了一个正弦的动画

label.setLocation(label.getX(), originalY+dynamicY);

}

}

}.execute();

}

});

效果如下:

在绝对布局中,当控件出现重叠时,层级高的控件会挡住

层级低的控件,并接收鼠标事件

【made by siwuxie095】

Absolute Layout的更多相关文章

  1. Java swing 如何将一个按钮放置到弹出框框的任意位置?(Absolute layout 布局的使用)

    准备: Absolute layout 绝对布局,绝对布局中控件的可以在任意位置放置 如何制作下面那种样子的 弹出框? ---------------------------------------- ...

  2. ExtJS 布局-Absolute布局(Absolute layout)

    更新记录: 2022年5月31日 发布本篇 1.说明 使用xy配置项设置子组件在父容器中绝对位置,本质是将子组件的CSS的position设置为absolute,然后使用x和y配置项映射到CSS的to ...

  3. ExtJs常用布局--layout详解(含实例)

    序言: 笔者用的ExtJs版本:ext-3.2.0 ExtJs常见的布局方式有:border.form.absolute.column.accordion.table.fit.card.anchor ...

  4. dynamic-css 动态 CSS 库,使得你可以借助 MVVM 模式动态生成和更新 css,从 js 事件和 css 选择器的苦海中脱离出来

    dynamic-css 使得你可以借助 MVVM 模式动态生成和更新 css,从而将本插件到来之前,打散.嵌套在 js 中的修改样式的代码剥离出来.比如你要做元素跟随鼠标移动,或者根据滚动条位置的变化 ...

  5. Android面试题(一)

    1. 请描述一下Activity 生命周期. 答: 如下图所示.共有七个周期函数,按顺序分别是: onCreate(), onStart(), onRestart(), onResume(), onP ...

  6. Xamarin.Forms 简介

    An Introduction to Xamarin.Forms 来源:http://developer.xamarin.com/guides/cross-platform/xamarin-forms ...

  7. android面试题

    1. 请描述一下Activity 生命周期. 答: 如下图所示.共有七个周期函数,按顺序分别是: onCreate(), onStart(), onRestart(), onResume(), onP ...

  8. Android基础面试题

    1. 请描述一下Activity 生命周期. 答: 如下图所示.共有七个周期函数,按顺序分别是: onCreate(), onStart(), onRestart(), onResume(), onP ...

  9. cocos布局分析

    HBox和VBox布局 HBox只是一个水平布局包装类. HBox里面所有的孩子节点都会水平排列成一行 VBox仅仅是对垂直布局的一个简便的类封装. VBox把它的子节点布局在一竖列中. Layout ...

随机推荐

  1. 用new Image().src作LOG统计的一个注意事项 .

    用new Image().src作LOG统计的一个注意事项 2009-08-06 17:40 在大型网站做很多用户行为分析.产品的策划方案基本上都是通过分析用户的访问等信息而做出的,LOG信息的统计准 ...

  2. 在Mac上激活Adobe产品

    1.在任意位置下载需要的Adobe软件(推荐官网正版) 网速不好或者不通推荐下载离线安装包: https://helpx.adobe.com/download-install/kb/creative- ...

  3. stl_relops.h

    stl_relops.h // Filename: stl_relops.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: http ...

  4. mysql数据库优化。(强力推荐)

    本文转自:https://m.aliyun.com/yunqi/articles/38809 一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善 ...

  5. memcached数据库

    Python-memcached的基本使用

  6. bzoj3597 方伯伯运椰子

    有一个 DAG,有一个源点,一个汇点和很多条边,每条边有花费 $d_i$ 和最大流量 $c_i$,可以花 $b_i$ 的钱把最大流量增加 $1$,花 $a_i$ 的钱把最大流量减少 $1$ 现在要进行 ...

  7. UVA - 11925 Generating Permutations (思维,构造)

    给你一个长度为n(n<=300)的排列,有两种操作,第一种是交换前两个数,第二种是把第一个数放到最后,让你用不超过2n^2次的操作把一个初始为1-n升序的排列变为该排列. 一开始被紫薯蛋疼的翻译 ...

  8. wpf和winform的那点区别

    一提起winform和wpf有啥不同,可能大部分人都会想到wpf拥有漂亮的界面.wpf中也可以使用winform,大部分情况下,都没有任何问题,极少的情况下,可能会出现问题. 我们就来看一下: voi ...

  9. Codeforces 786C. Till I Collapse 主席树

    题目大意: 给定一个长度为\(n\)的序列,要求将其划分为最少的若干段使得每段中不同的数字的种数不超过\(k\). 对于 \(k = 1 .. n\)输出所有的答案. \(n \leq 10^5\) ...

  10. 让人蛋疼的“Oracle.DataAccess.dll”

    项目介绍:为前台网站提供rest接口来操作erp相关数据 涉及db:oracle11 技术方案:因为erp是用remoting来调用,我想rest实现部分调用remoting来操作减少耦合,当然性能上 ...