/ / Встановити постійний розмір JScrollPane - java, jscrollpane, layout-manager, jtabbedpane, border-layout

Встановити константний розмір JScrollPane - java, jscrollpane, layout-manager, jtabbedpane, макет інтерфейсу

У мене є JTabbedPane з макетом кордону.

введіть опис зображення тут

Ось код, який я використовую, щоб додати компоненти:

add(columnNames, BorderLayout.NORTH);
add(scroll, BorderLayout.CENTER);
add(useCtrl, BorderLayout.SOUTH);
setVisible(true);

Питання: Помітьте зайвий пробіл праворучвсередині JScrollPane. Я цього не хочу. Я хотів би, щоб JScrollPane взагалі не змінював розмір при зміні розміру JFrame. Я спробував setSize () і setPreferredSize (), але розмір JScrollPane завжди змінюється. I " я намагався використовувати GridLayout, але я отримую той же результат.

Відповіді:

4 для відповіді № 1

Помістіть JScrollPane в JPanel з іншим макетом. (напр. BoxLayout або GridBagLayout). І додайте JPanel до центру.


3 для відповіді № 2

Розмір графічного об'єкта контролюється диспетчером макетів. The BorderLayout завжди буде розширювати CENTER об'єкт, щоб зайняти весь наявний простір. GridLayout пропорційно розширює всі діти. Якщо ви спробуйте GridBagLayout і встановіть weightx до 0, що запобігає розширенню по горизонталі.

Є багато менеджерів макетів,перегляньте API, щоб отримати більше варіантів та експериментуйте, поки не знайдете потрібну вам поведінку. Кожен має досить гарне пояснення того, як це працює в javadoc.