gpt4 book ai didi

java - 实时显示 JFrame 的变化

转载 作者:行者123 更新时间:2023-12-01 08:11:06 25 4
gpt4 key购买 nike

所以我想要完成的是创建两个 JFrame。一个将覆盖整个屏幕,当用户单击该屏幕时,当用户单击并拖动鼠标时,会显示一个新的 JFrame。用户第一次单击的位置是新 JFrame 的左上角,用户释放鼠标的位置是 JFrame 的右下角。当单击并释放鼠标时,制作两个 JFrame 并显示第二个 JFrame 没有问题。问题是什么,我希望新的 JFrame 在用户移动鼠标时(在释放鼠标之前)实时显示。我试过了

public void mouseDragged(MouseEvent e) {

FrontWindow f = new FrontWindow();

while (true) {
f.setBounds(Shared.xPressed, Shared.yPressed, (Utils.getXPosition() - Shared.xPressed) , (Utils.getYPosition() - Shared.yPressed));
f.setVisible(true);
}

}

但这并没有奏效。

最佳答案

不需要 while 循环。将生成多个 mouseDragged() 事件。

您应该在 mousePressed() 事件上创建新框架。然后,当生成每个 mouseDragged() 事件时,您可以更改框架的大小。

当然,这看起来不太好,因为拖动不会与框架的大小同步。更好的方法是在移动鼠标时绘制一个矩形。然后在 mouseReleased 上创建并以绘制的矩形的大小显示框架。

参见Custom Paint Approaches了解使用鼠标绘制矩形的基础知识。在您的情况下,您可能希望使用玻璃 Pane 来处理鼠标事件和矩形的绘制。

关于java - 实时显示 JFrame 的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17287581/

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