gpt4 book ai didi

java - 设置 JFrame 而不与任务栏重叠

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:47:53 25 4
gpt4 key购买 nike

我需要一个未修饰的 JFrame(setUndecorated(true)),它需要全屏显示,不与任务栏重叠。

我已经尝试了以下解决方案。

  • 调用 setExtendedState(MAXIMIZED_BOTH)。

    • 优势:这按预期工作正常,即窗口正在动态调整自身,但存在以下问题。
    • 问题最初窗口占据全屏虽然框架会自行动态调整,但它会与任务栏重叠。
  • 按照 Does JFrame.setExtendedState(MAXIMIZED_BOTH) work with undecorated frames? 中所述尝试了以下解决方案

     GraphicsConfiguration config = aFrame.getGraphicsConfiguration();
    Rectangle usableBounds = SunGraphicsEnvironment.getUsableBounds(config.getDevice());
    aFrame.setBounds(0, 0, usableBounds.width, usableBounds.height);
    • 优势:我没有重叠,窗口看起来很好。
    • 问题:当任务栏位置/大小更改时,窗口不会动态调整自身。

如有任何帮助,我们将不胜感激。

我想到了一个设计。但不确定其可行性。我可以使用 setBounds()。但是当任务栏被调整或重新定位时,我需要通知我的框架。有办法吗?

最佳答案

能够用下面的代码解决上面的问题,

Rectangle usableBounds = SunGraphicsEnvironment.getUsableBounds(config.getDevice());
setMaximizedBounds(usableBounds);
setExtendedState(MAXIMIZED_BOTH);

因此,通过 getUsableBounds,我能够获得离开任务栏的边界。因此,我正在使用 setExtendedState(MAXIMIZED_BOTH) 当我重新调整任务栏的大小/重新定位时,窗口会自动更新。 :-)

关于java - 设置 JFrame 而不与任务栏重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19632093/

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