JSplitPane движется только в одном направлении

У меня есть вложенная JSplitPane, а нижняя разделенная панель будет двигаться только влево. Он не будет двигаться вправо от позиции, даже если / после того, как я переместил его влево.

    dataEntry=new JTabbedPane();
    formformat=new JPanel();
    dataEntry.addTab("Table Entry", tableScroll);
    dataEntry.setMnemonicAt(0, KeyEvent.VK_1);
    dataEntry.addTab("Form Entry", formformat);
    dataEntry.setMnemonicAt(0, KeyEvent.VK_2);

    utils=new JTabbedPane();
    helphtml=new JEditorPane();
    utils.addTab("Field Help", helphtml);
    utils.setMnemonicAt(0, KeyEvent.VK_3);
    microImage=new JLabel();
    utils.addTab("Image Navigation", microImage);
    utils.setMnemonicAt(0, KeyEvent.VK_4);

    //leftright=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
    //        new JPanel().add(dataEntry), new JPanel().add(utils));
    leftright=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
    leftright.add(dataEntry);
    leftright.add(utils);
    leftright.setContinuousLayout(true);
    leftright.setOneTouchExpandable(true);
    try {
        System.out.println("divx loc"+sa.getXDivider(username));
        leftright.setDividerLocation(sa.getXDivider(username));
    } catch (Exception e1) {
        leftright.setDividerLocation(750);
    }
    createImage();
    if(!imgurl.equals("NONE"))
        topbot=new JSplitPane(JSplitPane.VERTICAL_SPLIT,imgpnl, leftright);
    else
        topbot=new JSplitPane(JSplitPane.VERTICAL_SPLIT,batchImage, leftright);

    topbot.setOneTouchExpandable(true);
    try {

        System.out.println("divy loc"+sa.getYDivider(username));
        topbot.setDividerLocation(sa.getYDivider(username));
    } catch (Exception e) {
        topbot.setDividerLocation(600);
    }

Закомментированный конструктор тоже не работает, я пробовал оба, и ни один метод ничего не меняет.

Почему горизонтальная разделительная панель движется только в одном направлении? Вертикальная разделенная панель не имеет проблем и может перемещаться вверх и вниз без проблем.

1 ответ

Решение

Гибкость разделенной панели будет ограничена минимальным размером компонентов, которые она содержит.

Чтобы ваша разделенная панель работала хорошо, вам часто нужно установить минимальные размеры компонентов в разделенной панели, а также предпочтительный размер разделенной панели или содержащихся в ней компонентов. Выбор размеров, которые вы должны установить, - это искусство, которое требует понимания того, как определяются предпочтительный размер и расположение разделителя разделенной панели.

от http://docs.oracle.com/javase/tutorial/uiswing/components/splitpane.html

Другие вопросы по тегам