1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
import java.awt.Dimension;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JDialog;
import javax.swing.JPanel;
public class modialog extends JDialog {
public static Point refPoint = null ;
public static int X ;
public static int Y ;
static class MouseDrag implements MouseMotionListener
{
private int X ;
private int Y ;
public modialog m_modialog;
public MouseDrag(modialog i_modialog)
{
m_modialog = i_modialog;
X = modialog.X;
Y = modialog.Y;
}
public void mouseMoved(MouseEvent event) {
// Set ref point.
// refPoint = new Point(event.getX(), event.getY());
//System.out.println(event.getX()+ " "+ event.getY());
}
/** {@inheritDoc}
*/
public void mousePressed(MouseEvent event) {
// Set ref point.
// refPoint = new Point(event.getX(), event.getY());
//System.out.println(event.getX()+ " "+ event.getY());
}
/** {@inheritDoc}
*/
public void mouseDragged(MouseEvent event) {
// Drag started outside the dialog.
// Set ref point.
if (refPoint == null) {
refPoint = new Point(event.getX(), event.getY());
}
// Dialog being dragged.
else {
// Compute movement.
int dx = event.getX() - refPoint.x;
int dy = event.getY() - refPoint.y;
System.out.println(dx +" "+ dy);
/** @todo try to keep the dialog within the screen boundaries. */
// Apply movement to dialog.
m_modialog.setLocation( X + dx ,Y + dy);
// Update ref point.
refPoint.x = event.getX();
refPoint.y = event.getY();
System.out.println( refPoint.x +" "+ refPoint.y );
}
}
/** {@inheritDoc}
*/
public void mouseReleased(MouseEvent event) {
// Release ref point for next drag.
refPoint = null;
}
}
/**
*
*/
public modialog() {
// TODO Auto-generated constructor stub
setLocationRelativeTo(getParent());
addMouseMotionListener(new MouseDrag(this));
setUndecorated(true);
JPanel pn = new JPanel();
pn.setPreferredSize(new Dimension(400,400));
add(pn);
pack();
setVisible(true);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new modialog();
}
} |
Partager