软件工程——移动的HelloWorld
| package disiti; | |
| import java.awt.Color; | |
| import java.awt.Cursor; | |
| import java.awt.Font; | |
| import java.awt.Point; | |
| import java.awt.event.MouseEvent; | |
| import javax.swing.JLabel; | |
| import javax.swing.JWindow; | |
| import javax.swing.event.MouseInputListener; | |
| public class GuiHelloWorld extends JWindow { | |
| private static final long serialVersionUID = 1L; | |
| JLabel titleLbl; | |
| Font GuiHelloWorldFont; | |
| public GuiHelloWorld() { | |
| GuiHelloWorldFont = new Font("幼圆", Font.ITALIC, 28); | |
| this.getContentPane().setBackground(new Color(0x99FF66)); | |
| this.setBounds(400, 200, 200, 60); | |
| this.setLayout(null); | |
| titleLbl = new JLabel(" Hello World!"); | |
| titleLbl.setFont(GuiHelloWorldFont); | |
| titleLbl.setOpaque(true); | |
| titleLbl.setBackground(new Color(0x66CC00)); | |
| titleLbl.setBounds(0, 0, 200, 60); | |
| this.add(titleLbl); | |
| // 鼠标事件处理类 | |
| MouseEventListener mouseListener = new MouseEventListener(this); | |
| titleLbl.addMouseListener(mouseListener); | |
| titleLbl.addMouseMotionListener(mouseListener); | |
| this.setVisible(true); | |
| } | |
| public static void main(String[] args) { | |
| new GuiHelloWorld(); | |
| } | |
| } | |
| class MouseEventListener implements MouseInputListener { | |
| Point origin; // 鼠标拖拽想要移动的目标组件 | |
| GuiHelloWorld frame; | |
| public MouseEventListener(GuiHelloWorld frame) { | |
| this.frame = frame; | |
| origin = new Point(); | |
| } | |
| public void mouseClicked(MouseEvent e) { | |
| // TODO Auto-generated method stub | |
| } | |
| public void mousePressed(MouseEvent e) { | |
| // TODO Auto-generated method stub | |
| origin.x = e.getX(); | |
| origin.y = e.getY(); | |
| } | |
| public void mouseReleased(MouseEvent e) { | |
| // TODO Auto-generated method stub | |
| } | |
| public void mouseEntered(MouseEvent e) { | |
| // TODO Auto-generated method stub | |
| this.frame.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR)); | |
| } | |
| public void mouseExited(MouseEvent e) { | |
| // TODO Auto-generated method stub | |
| this.frame.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); | |
| } | |
| public void mouseDragged(MouseEvent e) { | |
| // TODO Auto-generated method stub | |
| Point p = this.frame.getLocation(); | |
| this.frame.setLocation(p.x + (e.getX() - origin.x), p.y | |
| + (e.getY() - origin.y)); | |
| } | |
| public void mouseMoved(MouseEvent e) { | |
| // TODO Auto-generated method stub | |
| } | |
| } |
软件工程——移动的HelloWorld的更多相关文章
- 软件工程——HelloWorld
#include main(){ printf("Hello World\n"); }
- 软件工程(C编码实践篇)学习心得
孟繁琛 + 原创作品转载请注明出处 + <软件工程(C编码实践篇)>MOOC课程 http://mooc.study.163.com/course/USTC-1000002006 软件工程 ...
- 软件工程(C编码实践篇)总结
陆伟丹 + 原创作品转载请注明出处 + <软件工程(C编码实践篇)>MOOC课程http://mooc.study.163.com/course/USTC-1000002006 对软件工程 ...
- 《hello--world团队》第一次作业:团队亮相
项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验五 团队作业:软件研发团队组建 团队名称 <hello--world团队> ...
- OSGI框架—HelloWorld小实例
OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范.OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于 ...
- 《hello-world》第八次团队作业:Alpha冲刺
项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十二 团队作业8:软件测试与Alpha冲刺 团队名称 <hello--worl ...
- 《hello-world》第八次团队作业:Alpha冲刺-Scrum Meeting 1
项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十二 团队作业8:软件测试与Alpha冲刺 团队名称 <hello--worl ...
- 《hello-world》第八次团队作业:Alpha冲刺-Scrum Meeting 2
项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十二 团队作业8:软件测试与Alpha冲刺 团队名称 <hello--worl ...
- 《hello-world》第八次团队作业:Alpha冲刺-Scrum Meeting 3
项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十二 团队作业8:软件测试与Alpha冲刺 团队名称 <hello--worl ...
随机推荐
- 最后一个单词的长度的golang实现
给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度. 如果不存在最后一个单词,请返回 0 . 说明:一个单词是指由字母组成,但不包含任何空格的字符串. 输入: "He ...
- PDO 对 mysql的基本操作
PDO扩展操作 <?php $dsn = 'mysql:dbname=yii2;host=localhost'; $user = 'root'; $password = '123456'; tr ...
- Appium1.9.1 之 Desired Capabilities 释疑
服务关键字 Desired Capabilities在启动session的时候是必须提供的. Desired Capabilities本质上是以key value字典的方式存放,客户端将这些键值对发给 ...
- 简单使用Vuex步骤及注意事项
使用Vuex的步骤: (1)安装: 1.使用npm安装: npm install vuex --save 2.使用script标签引入 <script src="/path/to/vu ...
- vue实例生命周期详解
每个 Vue 实例在被创建之前都要经过一系列的初始化过程. 例如,实例需要配置数据观测(data observer).编译模版.挂载实例到 DOM ,然后在数据变化时更新 DOM . 在这个过程中,实 ...
- Linux驱动的两种载入方式过程分析
一.概念简述 在Linux下能够通过两种方式载入驱动程序:静态载入和动态载入. 静态载入就是把驱动程序直接编译进内核.系统启动后能够直接调用.静态载入的缺点是调试起来比較麻烦,每次改动一个地方都要又一 ...
- UVA10129-Play on Words(欧拉路径)
Problem UVA10129-Play on Words Accept: 2534 Submit: 19477 Time Limit: 3000 mSec Problem Description ...
- (转)linux下查看已安装的软件与卸载
因为linux安装软件的方式比较多,所以没有一个通用的办法能查到某些软件是否安装了.总结起来就是这样几类: 1.rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa ...
- MATLAB——BP神经网络
1.使用误差反向传播(error back propagation )的网络就叫BP神经网络 2.BP网络的特点: 1)网络由多层构成,层与层之间全连接,同一层之间的神经元无连接 . 2)BP网络的传 ...
- 在windows端使用jupyter notebook,服务器充当后台计算云端 简化描述
在CentOS7服务器端启动jupyter notebook服务,在windows端使用jupyter notebook,服务器充当后台计算云端 简化描述 CentOS7服务器端 jupyter no ...