Vaadin Horizo​​ntalSplitPanel:设置右侧宽度,以像素为单位

时间:2015-12-01 04:36:29

标签: java vaadin

我可以设置HorizontalSplitPanel的左侧宽度,如下所示。

splitter.setSplitPosition(40, Sizeable.Unit.PIXELS);

如上所述,由于分割位置是40个像素,因此分割器的左侧宽度为40个像素。在某种情况下,我想以像素为单位指定分割器右侧的宽度。

但是,我无法以上述方式设置右侧,因为无法找到分离器的总宽度。如果我能得到总宽度,我可以像下面那样完成它。

splitter.setSplitPosition(splitter.totalWidth() - 40, Sizeable.Unit.PIXELS);

那么,有什么方法可以用像素定义右侧宽度吗?

1 个答案:

答案 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
                })
        }
}