Заполните основной блок с помощью BorderPanel
Я в основном хочу заполнить мой MainFrame SplitPanel, который бы занимал все пространство, доступное в MainFrame. Я прочитал, что способ сделать это состоит в том, чтобы добавить BorderPanel к MainFrame и добавить SplitPane к центру BorderPanel.
object SwingApp extends SimpleSwingApplication {
def top = new MainFrame {
peer.setUndecorated(true) //with this hack it works but I don't feel like it's the purpose of the function
object splitPane extends SplitPane(Orientation.Vertical, new Button(), new Button())
contents = new BorderPanel {
import BorderPanel.Position._
val center = splitPane
layout(center) = Center
}
}
}
Моя проблема в том, что BorderPanel, кажется, принимает минимально возможный размер (здесь 0), когда я хочу, чтобы он фактически заполнил весь кадр.
Я нашел решение, установив внутри MainFrame
peer.setUndecorate(true)
но он чувствует себя грязным и, читая документ, я понятия не имею, почему это работает. Разве нет лучшего способа?
1 ответ
Вы можете добавить границу используя BorderFactory
и укажите толщину (10 здесь).
panel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0), 10));