Итак, я создал JDialog, и я запрограммировал его, чтобы переместить его, перетащив его , установив это в начале программы; Точка point = new Point();Ограничить движение мыши при перетаскивании
int xMouse;
int yMouse;
int x;
int y;
Dimension scrnSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle winSize = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
int taskBarHeight = (scrnSize.height) - (winSize.height);
int width = (scrnSize.width) - 300;
int height = (scrnSize.height) - 153 - taskBarHeight;
а затем внедрение этого;
private void BarMousePressed(java.awt.event.MouseEvent evt) {
point.x=evt.getX();
point.y = evt.getY();
}
private void BarMouseDragged(java.awt.event.MouseEvent evt) {
Point p = getLocation();
x = p.x+evt.getX()-point.x;
y = p.y+evt.getY()-point.y;
if (x > width){}
else if (y > height){}
else if (x<(0)){}
else if (y<(0)){}
else
{
setLocation(x, y);
}
}
Как вы можете видеть, я попытался сделать так, чтобы при попытке вытащить коробку с экрана она терпит неудачу. Но это действительно очень плохо, иногда останавливается, пока экран не заканчивается и действительно мешает движению вблизи края экрана. Не говоря уже о том, что, хотя диалог перестает двигаться, мышь продолжает двигаться.
Так что мне было интересно, существует ли какой-либо способ создать какой-то пансион, который мышь должна работать внутри, когда он пытается перетащить диалог.