Imri Persiado Imri Persiado - 1 year ago 202
Java Question

Making a java swing frame movable and setUndecorated

I have created a frame without the title bar, for that I used the setUndecorated(true); method but after that the frame is became unmovable for some reason.

How can I make my frame movable and still hide my title bar?

Answer Source

The following code will create a JFrame without a title bar, which you can still move around:

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.setBounds(0, 0, 400, 400);

                JPanel contentPane = new JPanel(new BorderLayout());
                JLabel label = new JLabel("Click anywhere in the Jframe and drag");
                label.setBorder(BorderFactory.createEmptyBorder(100, 100, 100, 100));

                FrameDragListener frameDragListener = new FrameDragListener(frame);


    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);

You can still drag it around by dragging the body of the frame.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download