2013-10-08 6 views
1

Я пытаюсь поместить компонент в угол окна. Однако в моем окне есть полоса прокрутки, а полоса прокрутки расположена поверх компонента.Найти стандартную ширину или высоту JScrollBar

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

Таким образом, мне нужна стандартная ширина полосы прокрутки (по вертикали) и стандартной высоты полосы прокрутки (по горизонтали).

Я мог бы попробовать getVerticalScrollBar.getWidth() во время выполнения, но, к сожалению, мне нужно поместить координаты, прежде чем создавать собственную полосу прокрутки.

Кроме того, создание пустого JScrollBar и вызова GetWidth() возвращает 0.

Спасибо за вашу помощь.

+0

@mKorbel: это новый mKorbel? –

+2

Есть так много вещей, которые могут повлиять на этот результат, посмотреть и почувствовать решения, свойства ОС, пользовательские настройки ... – MadProgrammer

+0

И вызывается ли 'getWidth()' до * или * после * графического интерфейса пользователя , –

ответ

0

Я не уверен в других ОС, но в Windows XP это 17 пикселей.
Что бы временно включить эту строку в вашей программе:

System.out.println(jScrollPane.getVerticalScrollBar().getWidth()) 

затем использовать значение печати.

+0

Не всегда ..... – MadProgrammer

2

Не задавайте размер или не задавайте размер, но пусть менеджеры макета выполняют эту работу за вас. Рассмотрим

  • добавления скроллбары по умолчанию в JScrollPane с помощью метода пары setVerticalScrollBarPolicy(...) и setHorizontalScrollBarPolicy(...) так, чтобы менеджеры компоновки принимают скроллбары во внимание при укладке все из получить идти.
  • Избегайте нужных макетов любой ценой, так как это уберет один из самых мощных инструментов для создания гибких рабочих графических интерфейсов Swing.
  • Если эти рекомендации не помогают, рассмотрите возможность создания и публикации sscce.
Смежные вопросы