GuiHelloWorld
package com.home.test;
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
}
}
GuiHelloWorld的更多相关文章
- 软件工程——移动的HelloWorld
package disiti; import java.awt.Color; import java.awt.Cursor; import java.awt.Font; imp ...
- 可移动的 HelloWorld
package com.home.test; import java.awt.Color;import java.awt.Cursor;import java.awt.Font;import java ...
随机推荐
- Mysqldumpslow的用法汇总
mysqldumpslow --help可显示其参数的使用 经常使用的参数: -s,是order的顺序 al 平均锁定时间 ar 平均返回记录时间 at 平均查询时间(默认) c 计 ...
- 倒水问题(Fill, UVa 10603)
[题目描述] 有三个没有刻度的水壶,容量分别为a,b和c(单位为升,都是<=200的正整数).初始时前两个水壶是空的,而第三个装满了水.每次可以从一个水壶往一个水壶里倒水,直到一个水壶倒空或者另 ...
- Python高级网络编程系列之第二篇
在上一篇中,我们深入探讨了TCP/IP协议的11种状态,理解这些状态对我们编写服务器的时候有很大的帮助,但一般写服务器都是使用C/Java语言,因为这些语言对高并发的支持特别好.我们写的这些简单的服务 ...
- 浅淡个人学习嵌入式Linux过程
我专业是电子信息工程,在初入大学的时候,我们的班主任便要我们多多去了解一些关于电子方面的知识.后来我了解到了嵌入式,继而了解到了嵌入式Linux.其实我们学习linux差不多就学习linux内核,但是 ...
- MySQL 基础四 存储过程
-- 定义存储过程 DELIMITER // CREATE PROCEDURE query_student2() BEGIN SELECT * FROM student; END // DELIMIT ...
- Win10上运行Docker
1. 前言 Docker最近推出了可以运行在Win10和Mac上的稳定版本,让我们赶紧来体验一下. Docker发布Mac和Windows 的目标非常简单——开发者可以更加简单方便地在研发机器上使用D ...
- 关于for,while,dowhile效率测试
引言 大家都知道每种循环对应的效率是不同的,书中都说在循环中使用减法的效率是比加法的效率高的,具体情况是怎么样,我们将详细列出各循环的执行效率问题.本文通过查看汇编代码比较各循环的效率以及i++,++ ...
- Emacs 番茄钟 pomidor
Windows 10 pomidor:https://github.com/TatriX/pomidor alert :https://github.com/jwiegley/alert toaste ...
- 走近SpringBoot
(博客园不支持MarkDown编辑,看完整版请移步:https://www.zybuluo.com/Allen-llh/note/1199946) 1. (Building a RESTful Web ...
- Webpack 概念
概念 webpack 是一个现代的 JavaScript 应用程序的模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图表(dependency ...