Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当首选项设置为125%时,如何使用默认字体大小的set-WindowsLookandFeel_Java_Swing_Uimanager - Fatal编程技术网

Java 当首选项设置为125%时,如何使用默认字体大小的set-WindowsLookandFeel

Java 当首选项设置为125%时,如何使用默认字体大小的set-WindowsLookandFeel,java,swing,uimanager,Java,Swing,Uimanager,我们有一个客户端swing应用程序,它在Windows上使用 String look = javax.swing.UIManager.getSystemLookAndFeelClassName(); javax.swing.UIManager.setLookAndFeel(look); 用户首选项设置为使用125%或150%字体缩放时除外,这会导致对话框中的组件在单个组件在框架内展开时溢出。我们使用的是Netbeans GUI构建器,我想它没有使用随着字体缩放而扩展的布局管理器 我的问题是,我

我们有一个客户端swing应用程序,它在Windows上使用

String look = javax.swing.UIManager.getSystemLookAndFeelClassName();
javax.swing.UIManager.setLookAndFeel(look);
用户首选项设置为使用125%或150%字体缩放时除外,这会导致对话框中的组件在单个组件在框架内展开时溢出。我们使用的是Netbeans GUI构建器,我想它没有使用随着字体缩放而扩展的布局管理器

我的问题是,我们是否可以使用Windows外观,但要确保字体设置始终设置为100%,因此它的行为更像其他主题(金属、光轮),它们不响应字体大小的更改,但在其他方面使用sysem外观


我认为我们可以在UIManager.getLookAndFeelDefaults()的每个字体属性上设置字体大小,但是如果我们这样做了,它会工作吗?

您的组件真的在扩展吗?如果是,代码可能正确地使用了布局管理器,您所需要做的就是使用
pack()
来调整每个窗口的大小,而不是对其边界进行硬编码。因此,您希望忽略用户的设置,并像其他忽略用户设置的操作一样?显示器越来越大,分辨率越来越高,这似乎是解决问题的错误方法。不,实际上我不认为组件正在扩展,例如,大多数按钮似乎没有扩展,因此扩展的标签文本对于按钮来说太大,被截断。这种行为是不稳定的,大多数文本被放大,如菜单和标签,而其他文本保持原始大小。此外,使用GUI builder创建的一些对话框确实可以调整大小,而其他对话框则不能,因此我正在寻找一种临时解决方案,在我们解决所有问题时效果良好。如果您查看此小程序,当设置为Windows L&F时,它不会调整为首选字体:这是因为它作为小程序运行吗?您可以更改所有组件的字体大小,使其保持较小。然而,由于用户界面很难看到,你的应用程序对用户的可用性变差了。因此,正确的方法是使用布局管理器和
pack()
:这样用户界面将根据用户的偏好进行缩放。