写一个无边框JFrame,并使其拖动

原创 2013年12月02日 10:34:54

package DeskTop;

import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;


public class Note extends JFrame implements MouseListener,MouseMotionListener{
 private JLabel iconLabel;
 private JPanel firstpPanel;
 private ImageIcon backIcon;
 public  Note() {
  backdrop();
 }
 private void backdrop() {
  //搭建背景,容器
  setUndecorated(true);
  backIcon = new ImageIcon("backdrop1.gif");
  iconLabel = new JLabel(backIcon);
  iconLabel.setBounds(0, 0,backIcon.getIconWidth(),backIcon.getIconHeight());
  firstpPanel = (JPanel)this.getContentPane();
  getLayeredPane().setLayout(null);
  getLayeredPane().add(iconLabel, new Integer(Integer.MIN_VALUE));
  firstpPanel.setOpaque(false);
  //AWTUtilities.setWindowOpacity(this, 0.5f);
  setSize(backIcon.getIconWidth(),backIcon.getIconHeight());
  /*AWTUtilities.setWindowShape(this, new RoundRectangle2D.Double( 
             0.0D, 0.0D, this.getWidth(), this.getHeight(), 80.0D, 
             30.0D));*/
  setLocation(80, 80);
  setVisible(true);
  addMouseListener(this);
  addMouseMotionListener(this);
 }
 public static void main(String[] args) {
  new Note();
 }

 
 Boolean tBoolean = false;
 Point fPoint;
 Point sPoint;
 Point tPoint;
 
 private void move() {
  Double fx,fy;
  Double sx,sy;
  Double tx,ty;
  fx = fPoint.getX(); fy = fPoint.getY();
  sx = sPoint.getX(); sy = sPoint.getY();
  tx = tPoint.getX(); ty = tPoint.getY();
  fPoint.setLocation(fx+tx-sx, fy+ty-sy);
  setLocation(fPoint);
 }
 public void mouseDragged(MouseEvent e) {
  //tBoolean = true;
  
  //System.out.println("ddddd");
  tPoint = e.getPoint();
  move();
 }
 public void mousePressed(MouseEvent e) {
  fPoint = getLocation();
  sPoint = e.getPoint();
 }
 public void mouseMoved(MouseEvent e) {
 }
 
 public void mouseClicked(MouseEvent e) {
    
 }
 public void mouseEntered(MouseEvent e) {
  
 }
 public void mouseExited(MouseEvent e) {
  
 }
 
 public void mouseReleased(MouseEvent e) {
  
 }
 

}



JFrame实现无边框 及 实现拖动和Button关闭功能

JFrame实现无边框 及 实现拖动和Button关闭功能 在用Java的Swing编程做GUI图形用户界面时,可能有这样的需求,就是不想要外面的那个默认边框,那么如何实现JFrame去边框,以及去...
  • ljheee
  • ljheee
  • 2016年04月03日 20:57
  • 5983

无边框窗体拖动大小

     今天有一个朋友问我怎样可以拖拽一个没有边框的窗体,使其改变大小。于是很快想到一个消息WM_NCHITTEST该消息用来描述,当关标移动或当按下或当释放了鼠标按扭的时候,就会发送一个WM_NC...
  • suiyunonghen
  • suiyunonghen
  • 2008年04月24日 22:30
  • 4096

Java Swing JFrame实现全屏--无标题,无边框

实现方式一: import java.awt.Dimension; import java.awt.Toolkit; import javax.swing.JFrame; public class ...
  • Monster1
  • Monster1
  • 2014年02月24日 22:29
  • 2268

java swing设置窗体无边框后鼠标还能拖动窗体的方法

import java.awt.EventQueue; import java.awt.Point; import java.awt.event.MouseAdapter; import jav...
  • W_Z_W_888
  • W_Z_W_888
  • 2017年07月24日 00:56
  • 1282

实现无边框时拖动窗口

//向父窗口模拟发送一条按下标题栏的消息 if (GetParent()->GetSafeHwnd()) GetParent()->PostMessage(WM_NCLBUTTONDOWN, HT...
  • ying909175415
  • ying909175415
  • 2014年04月15日 22:23
  • 388

解决java JFrame边框老土问题

问题一:为解决java JFrame边框老土问题;开始查找资料,首先找到的是一个IBM专家,也是SUNONE之一,他重写了JFrame类得到IFrame的Jar包,但是其效果还是不是特别理想;自己思考...
  • huan_mie
  • huan_mie
  • 2010年11月22日 21:40
  • 11575

C#实现无边框窗体拖动

1 2
  • CLeopard
  • CLeopard
  • 2014年08月28日 17:03
  • 4075

C# 如何鼠标拖动无边框窗体

设置了无边框表单,则无法使用鼠标拖动任意位置。 通过以下方式实现    private void FrmLogin_MouseDown(object sender, MouseEven...
  • l1553701121
  • l1553701121
  • 2014年02月20日 21:21
  • 484

winfrom无边框窗体拖动

using System;  using System.Collections.Generic;  using System.ComponentModel;  using System.Data;  ...
  • zhenyuanjie
  • zhenyuanjie
  • 2013年05月08日 11:17
  • 559

QT自定义窗口(无边框,自由拖动)

QT自定义窗口(无边框,自由拖动)
  • hiwubihe
  • hiwubihe
  • 2016年06月19日 16:24
  • 9414
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:写一个无边框JFrame,并使其拖动
举报原因:
原因补充:

(最多只允许输入30个字)