import java.awt.event.MouseAdapter;
import java.awt.event.MouseMotionListener;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.border.BevelBorder;
public class EasyMove extends MouseAdapter implements MouseMotionListener {
private Point offset;
private Component host;
public static void main(String[] args) {
JFrame frm = new JFrame("EasyMove demo.");
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setSize(300, 300);
frm.setUndecorated(true);// 影藏边框
frm.getRootPane().setBorder(
BorderFactory.createBevelBorder(BevelBorder.RAISED));
new EasyMove().install(frm);
JButton exit = new JButton("Exit");
exit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
frm.getContentPane().add(exit, BorderLayout.SOUTH);
frm.setVisible(true);
}
public synchronized void install(Component comp) {
uninstall();
host = comp;
host.addMouseListener(this);
host.addMouseMotionListener(this);
}
public synchronized void uninstall() {
if (host != null) {
host.removeMouseListener(this);
host.removeMouseMotionListener(this);
host = null;
}
}
public void mousePressed(MouseEvent e) {
if (e.getSource() == host)
offset = e.getPoint();
}
public void mouseDragged(MouseEvent e) {
if (e.getSource() != host)
return;
final int x = host.getX();
final int y = host.getY();
final Point lastAt = e.getPoint();
host.setLocation(x + lastAt.x - offset.x, y + lastAt.y - offset.y);
}
public void mouseMoved(MouseEvent e) {
}
}
java swing:http://www.java2s.com/Code/Java/Swing-JFC/CatalogSwing-JFC.htm
分享到:
相关推荐
实例255 拖动没有标题栏的窗体 325 实例256 取消窗体标题栏与边框 326 实例257 设置闪烁的标题栏 328 11.4 设置窗体的背景 329 实例258 设置窗体背景颜色为淡蓝色 329 实例259 实现带背景图片的窗体 330 实例260 使...
程序可以采用 JAVA 开发,但是因为它的虚拟机 (Virtual Machine) Dalvik ,是将 JAVA 的 bytecode 转成 自 己的格式,回避掉需要付给 SUN 有关 JAVA 的授权费用。 对手机制造者的影响 � Android 是款开源的移动计算...
DBF:dBASE文件,一种由Ashton-Tate创建的格式,可以被ACT!、Lipper、FoxPro、Arago、Wordtech、Xbase和类似数据库或与数据库有关产品识别;可用数据文件(能被Excel 97打开);Oracle 8.1.x表格空间文件 DBX:...
9.3.3 面板标题栏构件:ext.panel.header与ext.panel.tool / 438 9.3.4 记录和恢复面板属性:ext.util.memento / 439 9.3.5 面板常用的配置项、方法和事件 / 439 9.4 布局 / 441 9.4.1 布局概述 / 441 9.4.2 ...