Я использую GroupLayout
для основного макета, и выравнивание базовой линии работает нормально, пока я не добавлю внутренние панели. Кажется, что базовая линия не распространяется через эти панели: хотя все кнопки, метки и т. Д., Непосредственно добавленные к панели с помощью GroupLayout
, правильно выровнены относительно их базовой линии, компоненты внутри внутренних панелей не являются.
Так как Scala Swing на удивление не имеет GroupPanel
, я использую один из Andreas Flierl , но это не должно быть важным, так как я уверен, что это проблема базового свинга классы и как их обусловить.
import swing._
import eu.flierl.grouppanel.GroupPanel
val f = new Frame {
contents = new GroupPanel {
val but = new Button { text = "button" }
val lb = new Label { text = "label" }
val inner = new FlowPanel {
contents += new Button { text = "ibut" }
contents += new Label { text = "ilab" }
}
theHorizontalLayout is Sequential (but, lb, inner)
theVerticalLayout is Parallel(Baseline)(but, lb, inner)
}
centerOnScreen()
pack()
open()
}
Обратите внимание на скриншот, как внутренняя панель выровнена с основанием, а не с базовой линией. Эта проблема не зависит от менеджера компоновки, используемого для дочерней панели (это может быть другая компоновка группы).