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的更多相关文章

  1. 软件工程——HelloWorld

    #include main(){ printf("Hello World\n"); }

  2. 软件工程(C编码实践篇)学习心得

    孟繁琛 + 原创作品转载请注明出处 + <软件工程(C编码实践篇)>MOOC课程 http://mooc.study.163.com/course/USTC-1000002006 软件工程 ...

  3. 软件工程(C编码实践篇)总结

    陆伟丹 + 原创作品转载请注明出处 + <软件工程(C编码实践篇)>MOOC课程http://mooc.study.163.com/course/USTC-1000002006 对软件工程 ...

  4. 《hello--world团队》第一次作业:团队亮相

    项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验五 团队作业:软件研发团队组建 团队名称 <hello--world团队> ...

  5. OSGI框架—HelloWorld小实例

    OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范.OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于 ...

  6. 《hello-world》第八次团队作业:Alpha冲刺

    项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十二 团队作业8:软件测试与Alpha冲刺 团队名称 <hello--worl ...

  7. 《hello-world》第八次团队作业:Alpha冲刺-Scrum Meeting 1

    项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十二 团队作业8:软件测试与Alpha冲刺 团队名称 <hello--worl ...

  8. 《hello-world》第八次团队作业:Alpha冲刺-Scrum Meeting 2

    项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十二 团队作业8:软件测试与Alpha冲刺 团队名称 <hello--worl ...

  9. 《hello-world》第八次团队作业:Alpha冲刺-Scrum Meeting 3

    项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十二 团队作业8:软件测试与Alpha冲刺 团队名称 <hello--worl ...

随机推荐

  1. Linux 小知识翻译 - 「单CD 的linux」

    这次聊聊「单CD Linux」. 所谓「单CD Linux」,就是不用安装,从CD-ROM启动后就可以使用的Linux. 有名的KNOPPIX就是「单CD Linux」,此外还有Puppy Linux ...

  2. January 15th, 2018 Week 03rd Monday

    We got things to do. Places to go. People to see. Futures to make. 我们有很多事情要做,有很多地方要去,有很多人要见,有很多美好的未来 ...

  3. Python 使用 xlwings 往 excel中写入一列数据的两种方法

    1.准备一个二维列表,然后再range后面不指定任何选项,可以输出该二维列表中数据在一列中显示,如下代码: # -*- coding:utf-8 -*- import xlwings as xw li ...

  4. web笔试

    类型判断用到哪些方法? typeof和instanceof 值类型和引用类型的区别? 根据 JavaScript中的变量类型传递方式,又分为值类型和引用类型,在参数传递方式上,值类型是按值传递,引用类 ...

  5. vue实例详解

    Vue实例的构造函数 每个 Vue.js 应用都是通过构造函数 Vue 创建一个 Vue 的根实例 启动的 虽然没有完全遵循 MVVM 模式, Vue 的设计无疑受到了它的启发.因此在文档中经常会使用 ...

  6. [NOI2005]瑰丽华尔兹

    嘟嘟嘟 这题大家应该都做过,就是暴力dp+单调队列优化. dp方程其实很好想,最初是这样的:dp[t][i][j]表示时刻\(t\)后,走到\((i, j)\)格子的最远路程,于是就有: \[dp[t ...

  7. Python-2.7 : 编码问题及encode与decode

    普通的字符串在py2.7中都是以ASCII编码的,例如str=“abc”,若含有中文则会以gbk或者gb2312编码(GB2312是中国规定的汉字编码,也可以说是简体中文的字符集编码;GBK 是 GB ...

  8. 分布式计算(四)Azkaban安装

    Azkaban是一个批量工作流任务调度器,使用Java语言开发.用于在一个工作流内以一个特定的顺序运行一组工作和流程.Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web ...

  9. Luogu P2880 [USACO07JAN]平衡的阵容Balanced Lineup (ST表模板)

    传送门(ST表裸题) ST表是一种很优雅的算法,用于求静态RMQ 数组l[i][j]表示从i开始,长度为2^j的序列中的最大值 注意事项: 1.核心部分: ; (<<j) <= n; ...

  10. java StringBuilder和StringBuffer 用法

    可变的字符串,兄弟关系StringBuilder:效率高,安全性低StringBuffer:效率低,安全性高 StringBuilder 的常用方法的使用,StringBuffer用法一样. publ ...