java中解决组件重叠的问题(例如鼠标移动组件时)

java中解决组件覆盖的问题!
     有时候在移动组件的时候会出现两个组件覆盖的情况,但是你想让被覆盖的组件显示出来或者不被覆盖!
在设计GUI时已经可以定义组件的叠放次序了(按摆放组件的先后顺序)。
真正麻烦的是响应哪个组件,这就要创建一个链表,把组件对象按顺序存起来,响应事件时扫描这个链表,按
链表中的先后顺序选择响应组件对象。
     所以要想满足自己的需求,那么在添加组件的时候就要注意顺序就好了!

     另外如果不想用上面的方法,那么你就采用JLayeredPane这个类,分层面板可以帮助你解决覆盖中的问题!

例如moveToFront(Componet), moveToBack(Component), setPosition(), setLayer()。。。。

import java.awt.Button;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;import javax.swing.JLayeredPane;//实现鼠标移动组件的小程序
public class ParentAndChild {static Point oldPt;static JLayeredPane pane = new JLayeredPane();static Button btn = new Button(), btn1 = new Button("嘻嘻嘻");public static void main(String[] args) {Frame fm = new Frame("哈哈哈");fm.setVisible(true);pane.setLayout(new FlowLayout());fm.add(pane, "Center");btn.setLabel("啦啦啦");btn.addMouseListener(new MouseAdapter() {public void mousePressed(MouseEvent e) {oldPt=e.getLocationOnScreen();}public void mouseReleased(MouseEvent e) {pane.setPosition(btn, -1);} });btn.addMouseMotionListener(new MouseMotionAdapter() {public void mouseDragged(MouseEvent e) {Point pt = e.getLocationOnScreen();btn.setLocation(new Point(btn.getX() + pt.x-oldPt.x,btn.getY() + pt.y-oldPt.y));oldPt=pt;}});btn.setPreferredSize(new Dimension(200, 100));pane.add(btn);pane.add(btn1);fm.setSize(new Dimension(600, 800));fm.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});}}

  

 

转载于:https://www.cnblogs.com/hujunzheng/p/3970583.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab桥梁受力计算公式,matlab桥梁计算

等级:文件 218KB格式 pdf内容简介 该文结合斜拉桥施工监控的工程实践,分析研究利用MATLAB 6.0神经网络算法,可实现模式识别和函数逼近,进行信号处理,利用人工智能进行自动控制及非线性预测等。斜拉桥智能施…

php自然排序法的比较过程,PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)...

本文实例讲述了PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法。分享给大家供大家参考,具体如下:PHP中strnatcmp()函数使用"自然"算法来比较两个字符串(区分大小写),通常在自然算法中,数字 2 小于数字 10。而…

2014 网选 5014 Number Sequence(异或)

1 /*2 题意:a, b两个序列,规定由[0, n]区间的数!3 求 a[i] ^ b[i] 的和最大! 4 5 思路:如果数字 n的二进制有x位, 那么一定存在一个数字m,使得n^m的所有二进制位6 都是1&am…

2014 网选 5007 Post Robot(暴力或者AC_自动机(有点小题大作了))

//暴力&#xff0c;从每一行的开始处开始寻找要查询的字符 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std;char str[100005];int main(){while(gets(str)){for(int i0; str[i]; i)if(str[i]A){if(s…

java 如何放大动画图,Android仿微信图片放大动画

&#xff03;今年三月份直接上手做的android&#xff0c;代码写的不规范&#xff0c;有问题希望指出&#xff0c;谢谢(app数英)类似于微信 图片浏览的效果&#xff0c;我的做法是在两个activity A\B之间传递图片的位置信息思路&#xff1a;在activity A的list view上有一张图片…

2014 网选 5012 Dice(bfs模板)

1 /*2 题意&#xff1a;就是给定两个筛子&#xff0c;每个筛子上6个面&#xff0c;每个面的数字属于[1,6]&#xff0c; 且互不相同&#xff01;3 问a筛子最少经过按照题目规定的要求转动&#xff0c;达到和b筛子上下左右前后的数字相同&#xff01;4 5 思路&am…

matlab 神经网络dpi,基于DPI和BP神经网络的P2P流量识别研究

研究与开发 现代计算机 2019.04 上 文章编号&#xff1a;1007-1423(2019)10-0031-05 DOI&#xff1a;10.3969/j.issn.1007-1423.2019.10.007 基于 DPI 和 BP 神经网络的 P2P 流量识别研究 万建伟&#xff0c;胡勇 (四川大学电子信息学院&#xff0c;成都 610021) 摘要&#xff…

2014 网选 5011 Game(Nim游戏,数学题)

/*题意&#xff1a;Nim游戏&#xff01; 思路&#xff1a;通过异或&#xff0c;判断将n个数表示成二进制的形式之后&#xff0c;是否对应位的数字1 的个数是偶数&#xff01; */ #include<iostream> using namespace std;int main(){int n, x, s;while(cin>>n){s…

汉诺塔实践python,Python练习题11:汉诺塔实践

在终端输出如下信息--python在终端输出如下信息--python ???????????????????????????????????????????????????????????????????????????????????????????????? 描述 练习一…

oracle授权只读用户,Oracle创建只读用户(账号)的方法

第一步&#xff1a;创建用户(需要使用有dba管理员权限的用户创建一个新的用户&#xff0c;比如system)create user 用户名 identified by 密码 default tablespace 表空间;第二步&#xff1a;赋连接权限grant connect to 用户名;grant Resource to 用户名;权限分类&#xff1a;…

java中图片文件的传输及显示(Socket以及ServerSocket演示)

//客户端部分 package testSix;import java.awt.Graphics; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; import java.util.Iterator;import javax.imageio.ImageIO; import …

oracle 表约束非空,oracle--约束(主键、非空、检查)

问题1:学号重复了&#xff0c;数据还可以插入成功使用主键约束&#xff1a;学号是唯一标识一条数据的&#xff0c;所以必须唯一且不能为空---(1)、在确定为主键的字段后添加 primary key关键字---(2)、在创建表的后面使用&#xff1a;constraints pk_表名_字段名 primary key(字…

先序,中序,后序线索二叉树

//后序线索&#xff0c;这种方法不容易想到 1 #include<iostream>2 #include<cstring>3 #include<cstdio>4 #include<algorithm>5 6 using namespace std;7 8 struct TREE{9 int val; 10 TREE *ch[2]; 11 TREE *thread;//该节点的线索的…

cdp备份适合oracle吗,备份系统建设中的四个认识误区,你有吗?

【摘要】本文总结了企业在备份建设中常见的四个认识误区。【作者】李志刚企业在备份建设中&#xff0c;主要的认识误区有以下几个&#xff1a;一、用双机、阵列复制等系统冗余替代数据备份双机双柜可实现服务器和存储的高可用性&#xff0c;保障业务持续运行&#xff0c;但绝不…

2014 网选 广州赛区 hdu 5023 A Corrupt Mayor's Performance Art

1 #include<iostream>2 #include<cstring>3 #include<cstdio>4 #include<algorithm>5 #define N 10000056 using namespace std;7 8 int c[35];9 int tree[N*4];//正值表示该节点所管理的区间的颜色是纯色&#xff0c;-1表示的是非纯色 10 int n, m; …

oracle的todate函数 不用英文,关于在mybaties 和 oracle的to_date函数的问题?

ITMISSD)TO_DATE使用详解时常使用to_date函数来查询特定时间内的数据。语法&#xff1a;TO_DATE(x [, format])用于将字符串x转换为时间值&#xff0c;该函数可以指定一个可选的字符串format参数来说明x的格式。如果没有指定format参数&#xff0c;日期就使用默认的数据库格式(…

2014 网选 广州赛区 hdu 5025 Saving Tang Monk(bfs+四维数组记录状态)

1 /*2 这是我做过的一道新类型的搜索题&#xff01;从来没想过用四维数组记录状态&#xff01;3 以前做过的都是用二维的&#xff01;自己的四维还是太狭隘了.....4 5 题意&#xff1a;悟空救师傅 &#xff01; 在救师父之前要先把所有的钥匙找到&#xff01;6…

oracle move 换用户,Oracle move方法释放delete后的表空间

在新增记录时,高水位线会慢慢往上移,但是在删除记录后,高水位线却不会往下移。在使用delete from命令删除大量数据时会导致因HWM引起的性能问题。删除高水位的最直接的方法是truncate Table。-----Oracle 频繁delete表空间无法释放&#xff0c;释放表空间方法&#xff0c;清除…

oracle 字段除以1000,ORACLE常用}1000(之一)_oracle

大家在oracle的r候可能龅胶芏嗫雌聿浑y的}, 特eπ率碚f, 今天我伟阉Y一下, l布o大家, 希望Υ蠹矣助! 和大家一起探, 共同M步!     ORACLE高手碚f是不用看的. 1. Oracle安b完成后的初始口令?   internal/oracle   sys/change_on_install   system/manager   scott/…

java中图片文件的判断

javax.imageio 类 ImageIO BufferedImage bi ImageIO.read(resFile);//resFile --- InputStreamif(bi null){ System.out.println(此文件不为图片文件); }try {//判断是否为图片文件并且返回图片的格式&#xff01;ImageInputStream iis ImageIO.createImageInputStream(o)…