У меня есть следующий код:Mouse Event для перемещения кадра не работает
panel.addMouseListener(new MouseAdapter() {
public void mouseDragged(MouseEvent e) {
frame.setLocation(e.getXOnScreen(), e.getYOnScreen());
}
});
panel
является JPanel
, и весь импорт был включен. Теперь, когда я перетаскиваю panel
, frame
не перемещает маленький бит. Почему это и как мне его исправить?
EDIT: frame
без отделки.
EDIT: mouseDragged
не срабатывает - вот в чем проблема. EDIT: КОД !!!!!
package user_interface;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Test extends JFrame {
public Test() {
this.setUndecorated(true);
this.setLayout(new GridLayout(3, 3, 3, 3));
for (int i = 0; i < 4; i++) {
this.add(new JPanel());
}
JPanel panel = new JPanel();
panel.setBackground(new Color(0));
panel.setToolTipText("Drag to move frame");
this.addMouseListener(new MouseAdapter() {
public void mouseDragged(MouseEvent e) {
Test.this.setLocation(e.getXOnScreen(), e.getYOnScreen());
System.out.println(e);
}
});
this.add(panel);
for (int i = 0; i < 4; i++) {
this.add(new JPanel());
}
}
public static void main(String... args) {
Test test = new Test();
test.setSize(750, 500);
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 3
test.setVisible(true);
}
}
Рассмотрите возможность использования [runnable example] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это не дамп кода, а пример того, что вы делаете, что подчеркивает проблему, с которой вы сталкиваетесь. Это приведет к меньшему путанице и лучшим ответам – MadProgrammer
И для [примера] (http://stackoverflow.com/questions/16869877/how-to-remove-window-box-from-any-java-gui/16869893#16869893) и [пример] (http://stackoverflow.com/questions/30836201/jframe-wrong-location-with-ubuntu-unity/30836537#30836537) – MadProgrammer
[_et al._] (http://stackoverflow.com/search ? tab = vote & q =% 5bjava% 5d% 20ComponentMover) – trashgod