Для упражнений по программированию я использую JSplitPane, чтобы сделать окно с красивым рендером фрактала справа, а также другой мусор слева. Однако я столкнулся с очень странной проблемой: левый элемент полностью прав, но правый элемент также всегда выравнивается слева. Насколько я могу судить, правильному элементу присваивается размер правой части экрана, но он всегда полностью слева, а левый элемент поверх него.Java Swing: выравнивание правого элемента в JSplitPane
Я создаю и добавить Панель с ее элементы, как это:
splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true);
splitPane.add(sidebar, JSplitPane.LEFT);
splitPane.add(fractalWindow, JSplitPane.RIGHT);
frame.add(splitPane);
Я пробовал много различных способов построения и добавления Панель с разделителем компонентов к нему (с использованием setLeftComponent и setRightComponent и т.д.), но все, что я do, оба компонента всегда выравниваются влево. Что я делаю не так?
EDIT: sidebar - JPanel, fractalWindow - подкласс JPanel. Я попытался добавить fractalWindow в другой JPanel и добавить это в splitPane, но тогда правильный компонент вообще не нарисован. Я не указал макет для фрейма JFrame.
EDIT 2: он решен. Мой класс Fractal
использовал методы getX()
и getY()
, и я не знал, что я их переопределяю. Обычно они как правило возвращают 0, а это означает, что JPanel всегда помещался в верхний левый угол родительского компонента.
Возможно, это вызвано макетом «fractalWindow» –
, вы проверили мой ответ? – ItamarG3
1) Чтобы лучше помочь, опубликуйте [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). 2) Обеспечить ASCII-искусство или простой рисунок * предназначенного макета GUI при минимальном размере и, если он изменен, с большей шириной и высотой. –