JPanel в JScrollPane в JPanel, игнорируя горизонтальную перенос - PullRequest
0 голосов
/ 19 октября 2010

У меня есть JPanel, который содержит JScrollPane, который содержит JPanel следующим образом:

masterPanel.add(buttonPanel, BorderLayout.NORTH);
inner.setLayout(new BorderLayout());
inner.add(infoPanel, BorderLayout.NORTH);
inner.add(writingPanel, BorderLayout.CENTER);
beholder = new JScrollPane(inner);

masterPanel.add(beholder, BorderLayout.CENTER);

Я хочу, чтобы beholder был JScrollPane, чтобы панель кнопок всегда отображалась при прокрутке beholder (внутреннийпанель прокрутки).Это все работает нормально, но проблема в том, что панели внутри бехолдера не переносятся по линии.Так что у меня есть длинная строка текста в infoPanel, которая вызывает очень длинную, нежелательную горизонтальную прокрутку.

Если я просто изменю последнюю строку, добавив внутреннюю вместо бехолдера, она работает нормально (переносится правильно), нопанель кнопок не будет оставаться сверху, когда пользователь прокручивает страницу вниз.

Я полностью застрял.По сути, мой вопрос заключается в том, как сделать так, чтобы панели внутри JScrollPane переносились по словам в обычном режиме.

Проблема заключается в горизонтальном переносе.Даже если я установлю beholder.setPreferredSize () в очень низкое измерение x и y, оно полностью игнорирует измерение x, даже если кажется, что оно обычно подчиняется измерению y.

Ответы [ 2 ]

0 голосов
/ 29 октября 2010

По какой-то причине эта проблема решается путем вызова:

inner.setPreferredSize(inner.getPreferredSize());

Это приведет к переносу.

0 голосов
/ 19 октября 2010

Я думаю, прокручиваемая панель поможет вам.

...