JSplitPane, разделяющий 50% точно

Да, это намеренно (часть спецификации). Если объект имеет собственное свойство (.property в вашем примере), это свойство будет использоваться, а не унаследовано. Если это свойство существует, но является свойством accessor без getter, тогда возвращается undefined.

Обратите внимание, что это поведение не изменилось с ES5.

25
задан user278731 22 February 2010 в 04:27
поделиться

3 ответа

Используйте

setResizeWeight (. 5d);

[...] Значение 0, по умолчанию, указывает, что правый / нижний компонент получает все лишнее пространство (левый / верхний компонент действует фиксированным), где в качестве значения 1 указывает, что левый / верхний компонент получает все дополнительное пространство (правый / нижний компонент действует фиксированно). [...]

27
ответ дан 28 November 2019 в 18:27
поделиться

Вы должны использовать setDividerLocation(double proportionalLocation) , чтобы определить начальное распределение пространства для JSplitPane, а затем вызвать setResizeWeight(double) с тем же значением, чтобы убедиться, что размеры панелей изменяются. пропорционально.

Также имейте в виду: вызов setDividerLocation(double) до того, как JSplitPane станет видимым , не будет работать корректно , так как расчет пространства основан на текущем размере Component. Вместо этого вам нужно задействовать неприятный хак, такой как переопределение метода рисования JPanel, который содержит JSplitPane:

private boolean painted;

@Override
public void paint(Graphics g) {
    super.paint(g);

    if (!painted) {
        painted = true;
        splitPane.setDividerLocation(0.25);
    }
}
29
ответ дан Adamski 28 November 2019 в 18:27
поделиться

Решения здесь не принимают во внимание случай, когда пользователь перемещает разделитель (то есть переменное расположение разделителя). Полный пример, который учитывает это, доступен здесь:

Как заставить JSplitPane сохранять то же пропорциональное местоположение, если пользователь переместил местоположение делителя

0
ответ дан Community 28 November 2019 в 18:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: