gpt4 book ai didi

java - 拖动未修饰的 jDialog

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:34 24 4
gpt4 key购买 nike

因此,我有一个 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 都停止工作了。我是 jFrames 的 jDialogs 子项的新手,所以请帮助我提供一些指南:) 谢谢

最佳答案

嗯,正如@mKorbel 所建议的,我前往 here在那里我找到了一个名为 ComponentMover 的好类,它帮助我做到了这一点。我还需要 2 个声望,所以我保存了链接,以便在我能够做到的时候回来投票。

我必须确保它完美无缺地按照我想要的方式工作,但看起来很棒!谢谢!

关于java - 拖动未修饰的 jDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15867086/

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