gpt4 book ai didi

Java JFrame 设置最大位置

转载 作者:太空宇宙 更新时间:2023-11-04 07:02:11 25 4
gpt4 key购买 nike

提前抱歉,我不太知道这叫什么。

我正在尝试设置我的 JFrame,以便当它穿过屏幕宽度(或高度)时,它会停止移动。这是我到目前为止的代码...

public void moverMouseDragged(java.awt.event.MouseEvent evt) {
int x = evt.getXOnScreen()-xMouse;
int y = evt.getYOnScreen()-yMouse;
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int width2 = (int) screenSize.getWidth();
int height2 = (int) screenSize.getHeight();
if(this.getX()<0){x=0;}
if(this.getY()<0){y=0;}
if((this.getX()+width)>width2){x=width2;}
if((this.getY()+height)>height2){y=height2;}
this.setLocation(x, y);
System.out.println(this.getY()+"\n"+this.getX());
}
public void moverMousePressed(java.awt.event.MouseEvent evt) {
xMouse = evt.getX();
yMouse = evt.getY();
}

这只适用于屏幕的顶部和左侧。它充满了小故障,老实说我不知道​​该去哪里。

最佳答案

我修好了:

public void moverMouseDragged(java.awt.event.MouseEvent evt) {
int x = evt.getXOnScreen()-xMouse;
int y = evt.getYOnScreen()-yMouse;

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int xScreen = (int) screenSize.getWidth();
int yScreen = (int) screenSize.getHeight();
//System.out.println(width+" "+height);

if(x<0){x=0;}
if(y<0){y=0;}
if(y>(yScreen-height)){y=yScreen-height;}
if(x>(xScreen-width)){x=xScreen-width;}

this.setLocation(x, y);
//System.out.println(this.getY()+"\n"+this.getX());
}
public void moverMousePressed(java.awt.event.MouseEvent evt) {
xMouse = evt.getX();
yMouse = evt.getY();
}

准确地完成它应该做的事情:阻止 JFrame 越过屏幕的任意 4 个边。

关于Java JFrame 设置最大位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21943455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com