Border
s не участвуют напрямую в оценке размера LayoutManager
(они сами не JComponent
, а просто украшения вокруг JComponent
).
Следовательно, единственный способ гарантировать, что заголовок в TitledBorder
полностью виден, - это указать минимальный размер для панели, которой он назначен (или, скорее, для компонентов, встроенных в эту панель).
Расчет минимального размера в этом случае должен основываться на текущем заголовке вашего TitledBorder
и Font
, используемом TitledBorder
для рисования его заголовка.
Если честно, не уверен, стоит ли писать всю эту работу.
Основываясь на точных компонентах, содержащихся в вашем TitledBorder
, более простым решением было бы использовать JTextField.setColumns(n)
, где n достаточно велико по сравнению с заголовком.
На самом деле, лучшим способом было бы вообще избежать TitledBorder
, как предложил Карстен Ленцч из JGoodies, и заменить его с цветным JLabel
и горизонтальным JSeparator
, которые будут полностью участвовать в макете и, следовательно, использоваться для вычисления размера.
person
jfpoilpret
schedule
21.04.2011