Я использую JXMultiSplitPane
(из SwingX 1.6.2) для реализации трехпанельного горизонтального интерфейса.В центральной панели находится JTabbedPane
с двумя вкладками: одна с JTextArea
(в JScrollPane
, конечно), используемая для ввода кода уценки, а другая JEditorPane
(снова в панели прокрутки) дляотображение визуализированного предварительного просмотра HTML.Когда пользователь переключается на панель предварительного просмотра, текст в редакторе обрабатывается и отображается на панели предварительного просмотра.
Моя проблема заключается в том, что если я введу текст в редакторе с длинными строками, а затем переключусь на предварительный просмотр, центральная панель будет расширяться.Иногда это немного, в других случаях это займет больше места, чем на самом деле на экране.Но если я переместу один из маркеров изменения размера вручную, все вернется на место.
Я нашел только два способа справиться с этим, прежде чем это произойдет:
- Изменение размера вручнуюодна из панелей перед вводом текста.
- Присвойте центральной панели вес 1 в модели MultiSplitLayout.
Я не могу использовать вторую, поскольку она расширитцентральная панель, по умолчанию занимающая почти все окно.
Есть ли способ исправить это?
Обновление
После еще небольшого тестирования, даже техники (2)не сохраняет размер постоянным;переключение между двумя вкладками немного меняет размер центральной панели.
Теперь я считаю, что проблема частично связана с панелью с вкладками.JTextArea
и JEditorPane
имеют разный размер, и размер JTabbedPane
изменяется при переключении между ними (так как я каждый раз сбрасываю текст JEditorPane
. Это не будет проблемой, за исключением того, чтоJXMultiSplitPane
будет автоматически изменять размер центральной панели до тех пор, пока пользователь не изменит размер вручную, изменив размер вручную.
Так что я смогу исправить проблему, установив размер JTabbedPane
фиксированным, но все еще способнымбыть изменен размерами ручки. Какие-либо советы по этому поводу?