Какой текстовый компонент Java я должен использовать, чтобы изменить его размер, чтобы он соответствовал фрейму при его изменении? - PullRequest
2 голосов
/ 15 ноября 2010

У меня есть JTabbedPane и JTextArea, я хочу, чтобы размеры Textareas / Panes изменялись в соответствии с окном при изменении размера окна.Как мне это сделать?Я также размышляю, если это правильный текстовый компонент для использования.

Действительно запутано.

РЕДАКТИРОВАТЬ: Я устанавливал явный размер как тупой тупой.У меня все получилось.Я установил область просмотра JScrollPane в качестве JTextArea и удалил все явные размеры.

Спасибо, парни!

Ответы [ 2 ]

3 голосов
/ 15 ноября 2010

Вы можете использовать любые компоненты, которые вам нравятся. Все JComponents можно изменить с помощью родительского контейнера с изменяющимся размером. Вам просто нужно выбрать правильный LayoutManager.

В зависимости от того, как вы хотите, чтобы все было настроено, я предполагаю, что вы захотите добавить свой JTabbedPane к вашему JFrame следующим образом:

JTabbedPane jtp;
JFrame frame;
// JFrame's default layour is border layout.
frame.add(jtp, BorderLayout.CENTER);

Это заставит панель JTabbed занять все пространство JFrame.

Вам также необходимо установить менеджер компоновки JTabbedPane на BorderLayout, а также любая вкладка, которую вы добавляете в JTabbedPane, должна иметь BorderLayout.

Чтобы установить расположение ваших компонентов, выполните:

 JComponent anyComponent;
 anyComponent.setLayout(new BorderLayout());

Для получения дополнительной информации ознакомьтесь с руководствами по Java LayoutManager .

Я должен упомянуть, что причина, по которой я предлагаю BorderLayout, заключается в том, что любой компонент, добавленный к CENTER BorderLayout, автоматически займет любое пространство, не занятое ни одной из границ. И, поскольку вы ничего не добавляете ни к одной из других границ (СЕВЕР, ЮГ, ВОСТОК, ЗАПАД), компонент в центре займет все пространство.

1 голос
/ 15 ноября 2010

Размер каждого JComponent изменяется автоматически при изменении размера контейнера, в котором он находится.

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

При изменении размера контейнера компонент автоматически масштабируется до достижения желаемого максимального размера.

Если вам нужны фрагменты кода, сообщите мне, и я запусту свою IDE позже.

ура

РЕДАКТИРОВАТЬ: jjnguy избили меня до этого .. НМ тогда: p

...