私は2つの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
私の問題は、両方の仕切りの位置を移動するたびに、両方の仕切りが元の位置に戻る前に、そのメニュー項目を 2 回押す必要があることです。最初は常に左が、2 回目は右が続きます。
仕切りが設定されている順序を変更しようとしました (最初に右、次に左)。変更された分割線の分割ペイン、両方の分割ペイン、および両方の分割ペインと UI (JFrame を拡張) を無効にしてみました
また、メニュー項目が押されたときにメソッドを 2 回実行しようとしました。または、 getDividerLocation() が設定したばかりの値を返すかどうかを確認します (これは奇妙な理由で行われます)。
最後になりましたが、上記のすべての組み合わせを試しました。
アイデアが不足しています。これに対する有効な修正はありますか?
編集: 実行可能な例を作成しました (ソース: http://pastebin.com/VKtN6zJZ )、download.jar