相关疑难解决方法(0)

Windows上的JDialog扩展到Windows任务栏.任何解决方法?

此问题讨论了JFrame扩展到Windows任务栏的已知错误. 答案链接到错误报告(具有各种重复项)并提供解决方法.我发现问题也适用于JDialogs.JFrame解决方法不适用.是否有类似的解决方法使JDialogs在Windows上表现自己?

示例代码:

import javax.swing.*;

public class Demo extends JDialog {
    public Demo() {
        setSize(250,12500);
        setVisible(true);
    }
    public static void main(String[] args) {
        new Demo();
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:
看起来这不会在JDK中修复. 此错误报告以"如果开发人员想要在屏幕上完全显示其窗口,他们应该考虑检查屏幕插图本身[如下面的解决方案] "并以不同方式重新布局其组件的评论结束.在调用pack()之后手动重新调整窗口大小,或者使用支持screen-insets的布局管理器[与BorderLayout和GridBagLayout等更常见的布局管理器不同].

java windows swing taskbar jdialog

4
推荐指数
1
解决办法
838
查看次数

设置JFrame而不与任务栏重叠

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

我尝试了以下解决方案.

  • 调用setExtendedState(MAXIMIZED_BOTH).

    • 优点:这可以正常工作,即窗口动态调整,除了它有以下问题.
    • 问题 最初窗口占据全屏虽然帧动态调整,但它与任务栏重叠.
  • 尝试使用JFrame.setExtendedState(MAXIMIZED_BOTH)与未修饰帧一起工作的下述解决方案

     GraphicsConfiguration config = aFrame.getGraphicsConfiguration();
     Rectangle usableBounds = SunGraphicsEnvironment.getUsableBounds(config.getDevice());
     aFrame.setBounds(0, 0, usableBounds.width, usableBounds.height);
    
    Run Code Online (Sandbox Code Playgroud)
    • 优点:我没有重叠,窗口看起来很好.
    • 问题:当任务栏位置/大小发生变化时,窗口不会动态调整自身.

任何帮助将不胜感激.

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

java swing jframe

3
推荐指数
1
解决办法
4081
查看次数

标签 统计

java ×2

swing ×2

jdialog ×1

jframe ×1

taskbar ×1

windows ×1