`

java隐藏标题栏并且可以移动例子

阅读更多

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

分享到:
评论

相关推荐

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例255 拖动没有标题栏的窗体 325 实例256 取消窗体标题栏与边框 326 实例257 设置闪烁的标题栏 328 11.4 设置窗体的背景 329 实例258 设置窗体背景颜色为淡蓝色 329 实例259 实现带背景图片的窗体 330 实例260 使...

    新版Android开发教程.rar

    程序可以采用 JAVA 开发,但是因为它的虚拟机 (Virtual Machine) Dalvik ,是将 JAVA 的 bytecode 转成 自 己的格式,回避掉需要付给 SUN 有关 JAVA 的授权费用。 对手机制造者的影响 � Android 是款开源的移动计算...

    网管教程 从入门到精通软件篇.txt

    DBF:dBASE文件,一种由Ashton-Tate创建的格式,可以被ACT!、Lipper、FoxPro、Arago、Wordtech、Xbase和类似数据库或与数据库有关产品识别;可用数据文件(能被Excel 97打开);Oracle 8.1.x表格空间文件 DBX:...

    Ext Js权威指南(.zip.001

    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 ...

Global site tag (gtag.js) - Google Analytics