移动组件练习

简介: 1 import java.awt.*; 2 import java.awt.event.*; 3 import javax.swing.*; 4 import javax.swing.
 1 import java.awt.*;
 2 import java.awt.event.*;
 3 import javax.swing.*; 
 4 import javax.swing.event.*;
 5 public class moveText{
 6     Label myText;
 7     Frame mT;
 8     Point point = new Point(0, 0);
 9     public moveText(){
10         myText=new Label("move me please!");
11         mT = new Frame("moveTEXT");
12         myText.setBackground(Color.yellow);
13  
14         mT.addWindowListener(new myWindowListener());
15         mT.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
16         mT.setSize(600, 600);
17         mT.setLocation(100, 100);
18         myText.addMouseMotionListener(new myMouseListener1());
19         myText.addMouseListener(new myMouseListener2());
20         myText.setSize(20, 5);
21         mT.add(myText);
22         
23         mT.setVisible(true);
24     }
25     class myMouseListener1 extends MouseMotionAdapter {
26           
27          /* 
28           当鼠标拖动时触发该事件。 记录下鼠标按下(开始拖动)的位置。 
29          */  
30         public void mouseDragged(MouseEvent e) {  
31             // 转换坐标系统,将新的坐标(鼠标相对于组件的坐标)转换成该相对与其组件的父亲组件的坐标
32             Point newPoint = SwingUtilities.convertPoint(myText, e  
33                     .getPoint(), myText.getParent());  
34             // 设置标签的新位置  
35             
36             myText.setLocation(myText.getX()  
37                     + (newPoint.x - point.x), myText.getY()  
38                     + (newPoint.y - point.y));
39             
40             //这时开始写的方法,明显和上面的方法差别很大
41             //myText.setLocation(newPoint);
42             
43             // 更改坐标源点  
44             point = newPoint;  
45         }  
46     }
47     class myMouseListener2 extends MouseAdapter{
48         /*
49            当鼠标按下时触发该事件。 记录下鼠标按下(开始拖动)的位置。 
50          */  
51         public void mousePressed(MouseEvent e) {  
52             // 得到当前坐标点  
53             point = SwingUtilities.convertPoint(myText, e.getPoint(),  
54                     myText.getParent());  
55        }
56     }
57     public static void main(String args[]){
58         moveText mT=new moveText();
59         
60     }
61 }
62 
63 class myWindowListener extends WindowAdapter{
64     public void windowClosing(WindowEvent e){//Frame的关闭方法
65        System.exit(0);
66     }
67 }

 

目录
相关文章
|
11天前
|
JavaScript
组件上使用 v-for
组件上使用 v-for
|
11天前
在组件上使用
在组件上使用
|
3月前
|
资源调度 JavaScript 前端开发
2020你应该有一个自己的组件
2020你应该有一个自己的组件
40 0
|
4月前
|
JavaScript 前端开发
Vue3中的组件:组件的定义、组件的属性和事件、组件的Slots和动态组件
Vue3中的组件:组件的定义、组件的属性和事件、组件的Slots和动态组件
54 0
|
负载均衡 网络协议 Java
SprongCloud组件
SprongCloud组件
|
设计模式 JavaScript 前端开发
可复用性的组件详解
可复用性的组件详解
181 0
可复用性的组件详解
|
JavaScript
【vue 组件化开发 一 】组件基本使用、全局和局部组件、父组件和子组件的区别
学习组件基本的使用、全局和局部组件、父组件和子组件的区别。
187 0
|
架构师 定位技术 iOS开发
关于组件,你真的了解么?
最近经常听到“组件化开发”,那架构设计里,组件到底如何定义、设计和应用呢,今天我们一起来聊聊。
关于组件,你真的了解么?
|
JavaScript 前端开发 Java