我可以设置HorizontalSplitPanel
的左侧宽度,如下所示。
splitter.setSplitPosition(40, Sizeable.Unit.PIXELS);
如上所述,由于分割位置是40个像素,因此分割器的左侧宽度为40个像素。在某种情况下,我想以像素为单位指定分割器右侧的宽度。
但是,我无法以上述方式设置右侧,因为无法找到分离器的总宽度。如果我能得到总宽度,我可以像下面那样完成它。
splitter.setSplitPosition(splitter.totalWidth() - 40, Sizeable.Unit.PIXELS);
那么,有什么方法可以用像素定义右侧宽度吗?
答案 0 :(得分:1)
您可以“反转”分割位置。见setSplitPosition(float pos, Sizeable.Unit unit, boolean reverse)
:
reverse
- 如果设置为true,则拆分分割器位置由第二个区域测量,否则由第一个区域测量
E.g:
// run with `spring run vaadin.groovy`
@Grapes([
@Grab('org.vaadin.spring:spring-boot-vaadin:0.0.5.RELEASE'),
@Grab('com.vaadin:vaadin-server:7.5.9'),
@Grab('com.vaadin:vaadin-client-compiled:7.5.9'),
@Grab('com.vaadin:vaadin-themes:7.5.9'),
])
import org.vaadin.spring.annotation.VaadinUI
import com.vaadin.server.VaadinRequest
import com.vaadin.ui.*
import com.vaadin.annotations.*
import com.vaadin.server.Sizeable
@VaadinUI
@Theme("valo")
class MyUI extends UI {
protected void init(VaadinRequest request) {
setContent(new HorizontalSplitPanel(new Label("A"), new Label("B")).with{
setSplitPosition(40, Sizeable.Unit.PIXELS, true /*!*/)
it
})
}
}