Как установить размер JTextPane в соответствии с размером JPanel?
Я хочу установить размер JTextPane в соответствии с размером панели, чтобы при добавлении других панелей она менялась соответствующим образом. Но он просто дает небольшую текстовую панель в центре, и когда я добавляю немного текста, его размер изменяется соответственно.
JPanel panel = new JPanel();
JTextPane txt = new JTextPane();
JScrollPane pane = new JScrollPane();
pane.add(txt);
panel.add(pane,BorderLayout.CENTER);
add(pane);
Теперь jtextpane просто появляется в центре экрана, как маленькая коробка. Я хочу, чтобы он отображался в соответствии с размером панели
2 ответа
JPanel
использования FlowLayout
по умолчанию размеры компонентов в соответствии с их предпочтительными размерами. Ты можешь использовать BorderLayout
который будет использовать максимально возможную площадь.
Также используя ограничения, такие как BorderLayout.CENTER
не имеет никакого эффекта, если контейнер фактически не использует BorderLayout
, Dont add
компоненты к JScrollPane
, Это заменит все компоненты в представлении компонента. Вместо этого установите JTextPane
как ViewPortView
, например
JPanel panel = new JPanel(new BorderLayout());
JTextPane txt = new JTextPane();
JScrollPane pane = new JScrollPane(txt);
// pane.add(txt); remove
panel.add(pane, BorderLayout.CENTER);
Читать:
Вы добавили pane
дважды. добавлять panel
к вашей базе (JFrame
?) Вместо этого и не забудьте на самом деле установить свой JPanel
использовать BorderLayout
,