我有两个这样的 JSplitPanes
splitPaneRight = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, console, tabPager);
splitPaneLeft = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, infoPanel, splitPaneRight);
splitPaneRight.setResizeWeight(1);
和一个方法如下,通常通过单击其他地方的 JMenuItem 来调用:
public void resetLayout()
{
setSize(1280, 720);
splitPaneLeft.setDividerLocation(165);
splitPaneRight.setDividerLocation(830);
}
界面如下所示(可点击缩略图):
主用户界面 http://bit-stab.com/pictures/dump/MinecraftRemoteAdmin_thumb.jpg
我的问题是,每当我移动两个分隔线的位置时,我都必须按两次该菜单项,然后才能将两个分隔线放回原位。左边的总是第一次,右边的总是第二次。
我尝试更改设置分隔线的顺序(先右后左)。我尝试过无效化,更改分隔符的拆分窗格,两个拆分窗格,两个拆分窗格加上 UI(扩展 JFrame)
我还尝试在按下菜单项时两次运行该方法。或者检查 getDividerLocation() 是否返回我刚刚设置的值(出于某种奇怪的原因它会这样做)。
最后但并非最不重要的一点是,我尝试了以上所有方法的组合。
我的想法不多了,是否有解决此问题的有效方法?
编辑:我创建了一个可运行的示例(来源: http: //pastebin.com/VKtN6zJZ),download.jar