diff --git a/viewpanel/src/com/spineview/ObjectPanel.java b/viewpanel/src/com/spineview/ObjectPanel.java index 89b6eb2..baca993 100644 --- a/viewpanel/src/com/spineview/ObjectPanel.java +++ b/viewpanel/src/com/spineview/ObjectPanel.java @@ -231,10 +231,11 @@ public final class ObjectPanel { // Stage 上:`B()F`=getHeight、`D()F`=getWidth(实测:4K 窗口 2044 / 3726) if (stage != null) stageH = floatOf(stage, "B"); float panelH = stageH > 300f ? stageH - 100f : 984f; - // 用户指定(固定值):上段 600、中段 1400、日志段 400 - float buttonsH = 600f; - float middleH = 1400f; - float logH = 400f; + // 用户要的比例:上 600 : 中 1400 : 日志 400。三者按面板高度等比缩放,保证铺满、比例不变。 + float scale = panelH / 2400f; + float buttonsH = 600f * scale; + float middleH = 1400f * scale; + float logH = 400f * scale; call(logCell, "I", new Class[] {float.class}, cellClass, Float.valueOf(logH)); call(state.root, "b_", new Class[0], void.class); System.err.println("[panel] 面板高度(自动): stage=" + stageH + " -> " + panelH