java - JDialog在Windows 10上有一个隐式的最小宽度,如何绕过它?

标签 java swing windows-10 jdialog

我似乎无法使 JDialog 小于 Windows 10 上的最小宽度(观察到 java 7 及以上版本)。最小宽度似乎是 230px,不可能让它更小,即使指定新的最小尺寸,如下代码所示:

import javax.swing.*;
import java.awt.*;

public class TestDialog {
    public TestDialog() {
        JDialog testDialog = new JDialog();
        testDialog.setSize(new Dimension(10, 100));
        testDialog.setMinimumSize(new Dimension(10, 100));
        testDialog.setLocationRelativeTo(null);
        testDialog.setVisible(true);
    }

    public static void main(String args[]) {
        new TestDialog();
    }
}

minimum width jdialog

如何强制 JDialog 小于该值?

最佳答案

问题似乎出在默认的外观上。
当我按照 Hovercraft Full Of Eels 的建议设置 testDialog.setUndecorated( true ); 后尝试设置不同的装饰风格时我得到了一个非常狭窄的装饰对话框:

    class TestDialog {

    public TestDialog() {
        JDialog testDialog = new JDialog();
        testDialog.setUndecorated( true );
        testDialog.getRootPane( ).setWindowDecorationStyle(JRootPane.PLAIN_DIALOG );
        testDialog.getContentPane().add(makeContent());
        testDialog.setLocationRelativeTo(null);
        testDialog.pack();
        testDialog.setVisible(true);
    }

    private JPanel makeContent(){
        JPanel pane = new JPanel(new GridLayout(0, 1));
        pane.add(new JLabel("  1 "));
        pane.add(new JLabel("  2 "));
        pane.add(new JLabel("  3 "));
        return pane;
    }

    public static void main(final String args[]) {
        new TestDialog();
    }
}

enter image description here

关于java - JDialog在Windows 10上有一个隐式的最小宽度,如何绕过它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53511389/

相关文章:

c# - Windows 通用应用程序中的卡片 View Material 设计

windows - 无法针对工作和个人环境分别自定义.gitconfig中的配置

python - 如何将多行 python 脚本粘贴到 ConEmu 中?

java - 在 Firebase 数据库中读取和写入数据

JAVA JCheckBox 需要点击 2 次才能选中,点击 1 次才能取消选中

Java 在 JFrame 上移动 BufferedImage

android - 为什么大多数 UI 框架都是单线程的?

java - 如何将搜索 View 移动到屏幕左侧?

java - 如何从 jHipster 中的 SecurityContextHolder 检索自定义 UserDetails?

Java JTextArea 与 JMenuItem 重叠