Java codepackage demo;
import java.awt.Button;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.SwingUtilities;
public class WinB extends Frame implements MouseListener, MouseMotionListener {
Button button;
TextField text;
int x, y;
boolean move = false;
WinB() {
button = new Button("用鼠标拖动我");
text = new TextField("用鼠标拖动我", 8);
button.addMouseListener(this);
button.addMouseMotionListener(this);
text.addMouseListener(this);
text.addMouseMotionListener(this);
addMouseMotionListener(this);
setLayout(new FlowLayout());
add(button);
add(text);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setBounds(10, 10, 350, 300);
setVisible(true);
validate();
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
move = false;
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseClicked(MouseEvent e) {
}
public void mouseMoved(MouseEvent e) {
}
public void mouseDragged(MouseEvent e) {
Component com = e.getComponent();
if (com instanceof Component) {
if (com != this)
move = true;
e = SwingUtilities.convertMouseEvent(com, e, this);
if (move) {
x = e.getX();
y = e.getY();
int w = com.getSize().width;
int h = com.getSize().height;
com.setLocation(x - w / 2, y - h / 2);
}
}
}
}