|   
 
 import java.awt.Color;
 import java.awt.Container;
 import java.awt.Dimension;
 import java.awt.Graphics;
 import java.awt.Point;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
 import java.awt.event.MouseMotionListener;
 
 import javax.swing.JComponent;
 import javax.swing.JFrame;
 import javax.swing.JPanel;
 
 public class Main extends JPanel {
 public void paintComponent(Graphics g) {
 g.setColor(Color.black);
 g.fillRect(0, 0, getWidth(), getHeight());
 }
 
 public static void main(String[] args) {
 JFrame frame = new JFrame();
 frame.setPreferredSize(new Dimension(300, 280));
 
 Main ch = new Main();
 frame.getContentPane().add(ch);
 frame.setUndecorated(true);
 
 MoveMouseListener mml = new MoveMouseListener(ch);
 ch.addMouseListener(mml);
 ch.addMouseMotionListener(mml);
 
 frame.pack();
 frame.setVisible(true);
 }
 }
 
 class MoveMouseListener implements MouseListener, MouseMotionListener {
 JComponent target;
 Point start_drag;
 Point start_loc;
 
 public MoveMouseListener(JComponent target) {
 this.target = target;
 }
 
 public static JFrame getFrame(Container target) {
 if (target instanceof JFrame) {
 return (JFrame) target;
 }
 return getFrame(target.getParent());
 }
 
 Point getScreenLocation(MouseEvent e) {
 Point cursor = e.getPoint();
 Point target_location = this.target.getLocationOnScreen();
 return new Point((int) (target_location.getX() + cursor.getX()),
 (int) (target_location.getY() + cursor.getY()));
 }
 
 public void mouseClicked(MouseEvent e) {
 }
 
 public void mouseEntered(MouseEvent e) {
 }
 
 public void mouseExited(MouseEvent e) {
 }
 
 public void mousePressed(MouseEvent e) {
 this.start_drag = this.getScreenLocation(e);
 this.start_loc = this.getFrame(this.target).getLocation();
 }
 
 public void mouseReleased(MouseEvent e) {
 }
 
 public void mouseDragged(MouseEvent e) {
 Point current = this.getScreenLocation(e);
 Point offset = new Point((int) current.getX() - (int) start_drag.getX(),
 (int) current.getY() - (int) start_drag.getY());
 JFrame frame = this.getFrame(target);
 Point new_location = new Point(
 (int) (this.start_loc.getX() + offset.getX()), (int) (this.start_loc
 .getY() + offset.getY()));
 frame.setLocation(new_location);
 }
 
 public void mouseMoved(MouseEvent e) {
 }
 }
 
 
 
 
 |