62,614
社区成员
发帖
与我相关
我的任务
分享
import java.awt.Color;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JWindow;
import com.sun.awt.AWTUtilities;
public class DragFrame extends JFrame {
private Point offset = new Point();
private JWindow window = new JWindow();
private JLabel lab = new JLabel();
public DragFrame() {
this.setSize(400, 300);
this.setLocationRelativeTo(null);
this.setUndecorated(true);
this.getContentPane().setBackground(Color.RED);
window.getContentPane().add(lab);
lab.setBorder(BorderFactory.createLineBorder(Color.GRAY));
AWTUtilities.setWindowOpaque(window, false);
this.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e) {
offset.x = e.getXOnScreen();
offset.y = e.getYOnScreen();
window.setBounds(getX(), getY(), getWidth(), getHeight());
window.setVisible(true);
}
public void mouseReleased(MouseEvent e) {
setLocation(window.getX(), window.getY());
window.setVisible(false);
}
});
this.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent e) {
int x = window.getX() + e.getXOnScreen() - offset.x;
int y = window.getY() + e.getYOnScreen() - offset.y;
window.setLocation(x, y);
offset.x = e.getXOnScreen();
offset.y = e.getYOnScreen();
}
});
this.setVisible(true);
}
public static void main(String[] args) {
new DragFrame();
}
}
import java.awt.Color;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JFrame;
public class DragFrame extends JFrame {
private Point offset = new Point();
public DragFrame() {
this.setSize(400, 300);
this.setLocationRelativeTo(null);
this.setUndecorated(true);
this.getContentPane().setBackground(Color.RED);
this.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e) {
offset.x = e.getXOnScreen();
offset.y = e.getYOnScreen();
}
});
this.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent e) {
int x = getX() + e.getXOnScreen() - offset.x;
int y = getY() + e.getYOnScreen() - offset.y;
setLocation(x, y);
offset.x = e.getXOnScreen();
offset.y = e.getYOnScreen();
}
});
this.setVisible(true);
}
public static void main(String[] args) {
new DragFrame();
}
}