可能重复:
我可以使用 Java 找到控制台宽度吗?
例如,当您在 Linux 命令行中运行 nano 时,它会自动调整其文本格式以适应显示尺寸,即使您即时更改它们也是如此。
我知道这是一个很长的镜头,但是 Java 有没有办法检测显示大小和对其所做的更改?
可能重复:
我可以使用 Java 找到控制台宽度吗?
例如,当您在 Linux 命令行中运行 nano 时,它会自动调整其文本格式以适应显示尺寸,即使您即时更改它们也是如此。
我知道这是一个很长的镜头,但是 Java 有没有办法检测显示大小和对其所做的更改?
您需要使用 JNI 来调用 ncurses 或使用执行相同操作的库。
如果您只需要获取维度信息,这里有一个示例,其中包含对 getRowCount 和 getColumnCount 的 API 调用。
您可以通过在 JFrame 或任何外部容器上调用 getSize 来获取正在运行 Swing 应用程序的窗口的尺寸。这就是我将用于您描述的内容:获取窗口大小,然后将字体大小计算为窗口大小的某个百分比,可能具有上限和下限,因此您不要将字体大小设置为 2用户在增加窗口时会缩小窗口或 150。
您可以调用 GraphicsConfiguration.getLocalGraphicsConfiguration 来获取一个对象,该对象通常为您提供有关图形环境的信息。您可能想查看该类的 Java 文档,看看它是否提供了您想要的信息。getMaximumWindowBounds 可能是您正在寻找的。
您还可以使用 setExtendedState 最大化窗口,然后您可以检查当时的边界。