Java JFrame 窗口在 Win10 下被剪裁,但在 MacOS 下不剪裁

问题描述

我正在开发适用于 Mac 和 Win10 的教育应用。

我的画布窗口继承自 JFrame,并声明为固定大小:

        setSize(1250,732);
        setMinimumSize(getSize()); //fixed window size
        setMaximumSize(getSize());

窗口的交互内容是在 JComponent 后代中完成的,我将其添加到框架中:

        getContentPane().add(new CartesianCanvas());

CartesianCanvas 的大小与其父 JFrame 相同。

在 Win10 下启动时窗口被剪裁 - 右和下边缘缺少大约 15 个像素的宽度和高度。什么给?

解决方法

上面的代码片段不是使窗口不可调整大小的正确方法。正确的做法是:

setResizable(false);

也就是说,随着观看设备选项和分辨率(包括多个显示器、电视接口和投影仪)的增多,Java、.Net 和 JS 等框架可能是时候改进其图形库以提供像素的替代方案基于坐标?

所有应用开发者都面临着同样的问题。强迫每个应用程序开发人员编写可以在系统级别通用的代码是没有意义的。同意?不同意?