博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中解决组件重叠的问题(例如鼠标移动组件时)
阅读量:6291 次
发布时间:2019-06-22

本文共 1748 字,大约阅读时间需要 5 分钟。

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);				}		});	}}

  

 

转载地址:http://escta.baihongyu.com/

你可能感兴趣的文章
Unbuntu安装遭遇 vmware上的Easy install模式
查看>>
几个常用的ASP木马
查看>>
python分析postfix邮件日志的状态
查看>>
Mysql-5.6.x多实例配置
查看>>
psutil
查看>>
在git@osc上托管自己的代码
查看>>
机器学习算法:朴素贝叶斯
查看>>
小五思科技术学习笔记之扩展访问列表
查看>>
使用Python脚本检验文件系统数据完整性
查看>>
使用MDT部署Windows Server 2003 R2
查看>>
Redhat as5安装Mysql5.0.28
查看>>
通过TMG发布ActiveSync
查看>>
Web服务器的配置与管理(4) 配置访问权限和安全
查看>>
ClientScriptManager与ScriptManager向客户端注册脚本的区别
查看>>
js和php中几种生成验证码的方式
查看>>
android UI进阶之仿iphone的tab效果1
查看>>
这是我的第1个C#程序(向控制台输出一句话)
查看>>
html
查看>>
Xqk.Data数据框架开发指南:丰富的、灵活的查询方法(第三部分:SqlField)
查看>>
工作第十五周:上线前的惊悚
查看>>