写一个无边框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拖动&&去边框

  • 2008年10月16日 22:10
  • 1KB
  • 下载

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

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

java JFrame去掉标题栏后如何实现鼠标移动到边框可以进行拖拉以放大缩小

JFrame去掉标题栏后如何实现拖动边框以放大缩小
  • nlznlz
  • nlznlz
  • 2014年04月22日 10:06
  • 1873

关于JFrame背景边框以及paint 和paintComponents

    今天偶然又拾起swing相关知识,突然看到以前自己对于JFrame背景和边框的处理。    发现以前对这两点的处理自己现在怎么有些看不懂了,首先是关于背景的处理,我们其实实现是对JPanel的...

java swing最简单实例(2) 往JFrame里面放一个容器或组件

可以往JFrame里面放的东西有两种,Containers和Components.介绍了如果添加一个容器或组件...

java swing最简单实例(1) 一个空的JFrame

我准备写一个系列的java图形化界面的教程。每个程序都尽量只写维持运行所需的最简化程度的代码,好让大家都看懂。   使用java图形界面只需要jdk,eclipse即可。如果布局抽象能力不够强大,...

JAVA一个完整的QQ登录界面,JFrame中的一些个性化设置功能

package com.smallQQ1; import javax.imageio.ImageIO; import javax.swing.*; import javax.swing.bord...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:写一个无边框JFrame,并使其拖动
举报原因:
原因补充:

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