diff --git a/viewpanel/src/com/spineview/ObjectPanel.java b/viewpanel/src/com/spineview/ObjectPanel.java index c2b03e2..70d744b 100644 --- a/viewpanel/src/com/spineview/ObjectPanel.java +++ b/viewpanel/src/com/spineview/ObjectPanel.java @@ -231,14 +231,17 @@ 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; - call(buttonsCell, "I", new Class[] {float.class}, cellClass, - Float.valueOf(panelH * 0.2f)); - call(middleCell, "I", new Class[] {float.class}, cellClass, - Float.valueOf(panelH * 0.6f)); - call(logCell, "I", new Class[] {float.class}, cellClass, Float.valueOf(panelH * 0.2f)); + // 上段 = 面板 20%;下段(日志) = 固定 800;中段 = 剩下全部(保证仍然铺满) + float logH = 800f; + float buttonsH = panelH * 0.2f; + float middleH = panelH - buttonsH - logH; + if (middleH < 120f) middleH = 120f; + call(buttonsCell, "I", new Class[] {float.class}, cellClass, Float.valueOf(buttonsH)); + call(middleCell, "I", new Class[] {float.class}, cellClass, Float.valueOf(middleH)); + 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 - + ";三段 = " + (panelH * 0.2f) + " / " + (panelH * 0.6f) + " / " + (panelH * 0.2f)); + + ";三段 = " + buttonsH + " / " + middleH + " / " + logH); } catch (Throwable error) { System.err.println("[panel] 自动三段高度失败: " + error); }