Java有关浮动面板(无标题可拖动窗口).doc
文本预览下载声明
package javaapplication1;import javax.swing.*;import java.awt.*;import java.awt.event.*;
public class TestFrameDemo {
??????? static Point origin = new Point();? //全局的位置变量,用于表示鼠标在窗口上的位置
??????? static JFrame myFrame = new JFrame();
??????? public static void main(String[] args) {??????????????? myFrame.setUndecorated(true);??????????????? myFrame.setSize(600, 400);??????????????? myFrame.setVisible(true);
??????????????? myFrame.addMouseListener(new MouseAdapter() {??????????????????????? public void mousePressed(MouseEvent e) {? //按下(mousePressed 不是点击,而是鼠标被按下没有抬起)??????????????????????????????? origin.x = e.getX();? //当鼠标按下的时候获得窗口当前的位置??????????????????????????????? origin.y = e.getY();??????????????????????? }??????????????? });??????????????? myFrame.addMouseMotionListener(new MouseMotionAdapter() {??????????????????????? public void mouseDragged(MouseEvent e) {? //拖动(mouseDragged 指的不是鼠标在窗口中移动,而是用鼠标拖动)?????????????????????????????????????????????????????????? Point p = myFrame.getLocation();? //当鼠标拖动时获取窗口当前位置??????????????????????????????? //设置窗口的位置??????????????????????????????? //窗口当前的位置 + 鼠标当前在窗口的位置 - 鼠标按下的时候在窗口的位置??????????????????????????????? myFrame.setLocation(p.x + e.getX() - origin.x, p.y + e.getY() - origin.y);??????????????????????? }??????????????? });??????? }}
此代码我在Myeclipse中执行,请初学者注意包名和类名;这个执行效果为:
图中灰色的部分为浮动窗口部分,可随意拖动,但是要在任务栏右击才能关闭窗口;
2、
用NetBeans写的Java Swing模仿Vista磨砂玻璃效果透明窗体 第3版
上面是原文作者的标题,我在Myeclipse里面试过了,也能正常运行,无需修改代码,但是可能有些用户需要修改Myeclipse默认的jre,这个最后说,先看一下代码:
package javaapplication1;import java.awt.Robot;import java.awt.*;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.Graphics;import java.awt.Image;import java.awt.Point;import java.awt.Rectangle;import java.awt.Robot;import java.awt.Toolkit;import java.awt.event.ComponentEvent;import java.awt.event.ComponentListener;import java.awt.event.WindowEvent;import java.awt.event.WindowFocusListener;
import javax.swing.JButton;import javax.sw
显示全部