以下代码将创建一个不带标题栏的Jframe,您仍然可以在其中移动它:
import javax.swing.*;import java.awt.*;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;public class frameDragListenerExample { public static void main(String[] args) { Runnable runnable = new Runnable() { public void run() { final Jframe frame = new Jframe("Hello"); frame.setUndecorated(true); frame.setBounds(0, 0, 400, 400); JPanel contentPane = new JPanel(new BorderLayout()); JLabel label = new JLabel("Click anywhere in the Jframe and drag"); label.setFont(label.getFont().deriveFont(16f)); label.setBorder(BorderFactory.createEmptyBorder(100, 100, 100, 100)); contentPane.add(label); frame.setContentPane(contentPane); frameDragListener frameDragListener = new frameDragListener(frame); frame.addMouseListener(frameDragListener); frame.addMouseMotionListener(frameDragListener); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } }; SwingUtilities.invokeLater(runnable); } public static class frameDragListener extends MouseAdapter { private final Jframe frame; private Point mouseDownCompCoords = null; public frameDragListener(Jframe frame) { this.frame = frame; } public void mouseReleased(MouseEvent e) { mouseDownCompCoords = null; } public void mousePressed(MouseEvent e) { mouseDownCompCoords = e.getPoint(); } public void mouseDragged(MouseEvent e) { Point currCoords = e.getLocationOnScreen(); frame.setLocation(currCoords.x - mouseDownCompCoords.x, currCoords.y - mouseDownCompCoords.y); } }}您仍然可以通过拖动框架的主体来拖动它。



