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. Spring boot + mybatis + orcale

    接着上次的实现, 添加 mybatis 查询 orcale 数据库 第一步: 新建几个必须的包, 结果如下 第二步: 在service包下新建personService.java 根据名字查perso ...

  2. kafka管理器之kafka-manager

    功能 为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager.这个管理工具可以很容易地发现分布在集群中的哪些to ...

  3. Html body的滚动条禁止与启用

    在写一个在页面中,经验证用户没有登录或session失效时候弹出登录框禁止页面滚动用到今天搞了一个功能,上下左右居中,模仿QQ空间里的样式,把横向和纵向滚动条禁止掉代码如下:<script ty ...

  4. BSOJ 2414 -- 【JSOI2011】分特产

    Description JYY 带队参加了若干场ACM/ICPC 比赛,带回了许多土特产,要分给实验室的同学们. JYY 想知道,把这些特产分给N 个同学,一共有多少种不同的分法?当然,JYY 不希望 ...

  5. python六十三课——高阶函数之sorted

    演示sorted函数的使用,以及和sort的区别:我们将sorted和sort进行一番比较:相同点:它们都是来实现排序的操作(功能层面)不同点:列表中的sort函数,它执行完毕后会直接影响原本这个li ...

  6. 20145203盖泽双 《网络对抗技术》实践1—— MAL_逆向与Bof基础

    20145203盖泽双 <网络对抗技术> MAL_逆向与Bof基础 实践目标 (1)我们要通过修改程序代码,使得程序运行其自身中本不该运行的代码片段. (2)在这里,我们有一个名为2014 ...

  7. MetaMask/safe-event-emitter

    https://github.com/MetaMask/safe-event-emitter safe-event-emitter An EventEmitter that isolates the ...

  8. nodejs stream 手册学习

    nodejs stream 手册 https://github.com/jabez128/stream-handbook 在node中,流可以帮助我们将事情的重点分为几份,因为使用流可以帮助我们将实现 ...

  9. 一个网工的Linux学习过程

    机缘巧合下,在快要毕业时找到了一份网络工程师的工作,对于学习通信工程的我来说,也不算是跨专业就业吧.在入职之前也了解了一下网络工程师的学习路径,网络工程师是从事计算机信息系统的设计.建设.运行和维护工 ...

  10. 如何用css实现"等高布局"。

    有时候为了让网页实现美观,在不知道高度的情况下,我们要用css实现等高布局效果,传统的方法, 我们可以用javascript实现,但是由于需求决定或者其他的情况下,我们只能用css实现,其方法主要是采 ...