Перетащите незакрашенный jDialog

Итак, у меня есть jFrame, в котором я создаю главное окно интерфейса чата. Это окно / jFrame имеет несколько кнопок, каждая из которых показывает jDialog (который я создал ранее в Netbeans, перетаскивая jDialog на родительский (?) JFrame).

Моя проблема в том, что для обоих окон установлено значение undecorated = true, поэтому я хочу позволить пользователю перетаскивать и перемещать все окна по своему желанию, щелкая и перетаскивая часть окон (которые имитируют строку заголовка, если не декорированы)

Во всех jFrames я добился этого с помощью следующего кода сразу после initComponents():

    final Point point = new Point(0,0);        // Why 'final' and not simply Point point?     
    addMouseListener(new MouseAdapter() {  
        public void mousePressed(MouseEvent e) {  
            if(!e.isMetaDown()){  
                point.x = e.getX();  
                point.y = e.getY(); 
                System.out.println("Ratón pulsado: " + point.x + "," + point.y);
            }  
        }  
    });

    addMouseMotionListener(new MouseMotionAdapter() {  
        public void mouseDragged(MouseEvent e) {  
            if(!e.isMetaDown() &&  point.y <= 17){  //Coordinates of title bar, any X and up to 17px from the top border
                Point p = getLocation();  
                setLocation(p.x + e.getX() - point.x, p.y + e.getY() - point.y); 
                System.out.println("Ratón movido: " + (p.x + e.getX() - point.x) + "," + (p.y + e.getY() - point.y));
            }  
        }  
    }); 

Однако я не знаю, как использовать этот код в jDialog. Когда я щелкаю его правой кнопкой мыши в навигаторе и выбираю «Настроить код», я не могу вставить его туда, потому что весь jFrame перестает работать. Я новичок в этой вещи jDialogs, дочерних элементов jFrames, поэтому, пожалуйста, помогите мне с некоторыми рекомендациями :) Спасибо


person fernandopcg    schedule 07.04.2013    source источник
comment
ищите движка компонентов, не забудьте проголосовать за автора этого (тех) ответа (ов)   -  person mKorbel    schedule 08.04.2013
comment
Для примера.   -  person trashgod    schedule 08.04.2013


Ответы (1)


Что ж, как предложил @mKorbel, я направился к здесь, где я нашел хороший класс под названием ComponentMover, который помог мне в этом. Мне понадобится еще 2 репутации, поэтому я сохранил ссылку, чтобы вернуться и проголосовать, когда я смогу это сделать.

Я должен убедиться, что он работает идеально и именно так, как я хочу, но выглядит великолепно! Спасибо!

person fernandopcg    schedule 07.04.2013