解决可调整大小的 JFrame 中的精确中心定位
您的查询提出了两个挑战:与框架边缘的精确碰撞检测和确定精确中心,无论屏幕尺寸如何。
碰撞检测修正
碰撞检测中观察到的 10 像素偏移可能源于对框架尺寸的误解。 JFrame 包括边框、JRootPane 和实际内容窗格周围的其他组件。因此,您需要调整计算以考虑边框的宽度和高度。
要获得精确的可绘制区域,请使用以下公式:
Width - border.width Height - border.height
精确屏幕中心确定
要找到屏幕的确切中心,请考虑以下:
选择使用哪个值取决于您的目的:
居中方法Frame
要轻松使框架在屏幕上居中,请调用 Window#setLocationRelativeTo(null)。
或者,您可以使用以下公式:
JFrame frame = ...; Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int x = (screenSize.width - frame.getWidth()) / 2; int y = (screenSize.height - frame.getHeight()) / 2; frame.setLocation(x, y);
以上是如何准确地将可调整大小的 JFrame 居中并检测与其边缘的碰撞?的详细内容。更多信息请关注PHP中文网其他相关文章!