일부 제목 및 값 레이블을 시각화하기 위해 Vaadin의 GridLayout을 사용합니다. GridLayout에는 2 개의 열과 여러 개의 행이 있습니다. 제목 레이블은 왼쪽에 있고 관련 레이블은 오른쪽에 있습니다.Vaadin Gridlayout에서 사용 가능한 공간을 사용하지만 줄 바꿈을 고려하십시오.
가능한 한 적은 공간으로 첫 번째 열을 소비하고 두 번째 열은 브라우저 창의 모든 나머지 공간을 차지해야합니다. 값 레이블에 사용 가능한 공간보다 많은 공간이 필요한 경우 행을 끊어야합니다.
setColumnExpandRatio()
으로 게임을 시도했습니다. 두 번째 열의 비율을 다음과 같이 결정하면 (첫 번째 열의 비율 지정을 생략하면) 매우 큰 텍스트 콘텐츠가있는 값 레이블이 줄 끝 부분에서 끊어지지 않는다는 사실을 제외하고는 모두 요청에 따라 작동합니다. 대신, 가로 스크롤 막대가 나타납니다
public class MyPanel extends GridLayout
{
public MyPanel()
{
setWidth("100%");
setMargin(true);
setSpacing(true);
buildView();
}
public void buildView()
{
removeAllComponents();
setColumns(2);
setColumnExpandRatio(1, 1);
...
titleLabel.setWidth(null);
valueLabel.setWidth(null);
addComponent(titleLabel);
addComponent(valueLabel);
setComponentAlignment(titleLabel, Alignment.TOP_RIGHT);
}
}
나는 또한 다음 첫 번째 열은 정말 필요한 것보다 더 많은 공간을 소비하는 첫 번째 열에 대한 비율을 지정합니다.
내 요구 사항을 어떻게 실현할 수 있습니까?
절대적으로 올바른 대답 그! 나는 결코이 조합을 시도하지 않았다. 더 복잡한 솔루션을 찾았지만 같은 효과를 얻었습니다. [link] (https://vaadin.com/forum/#!/thread/126872/181018)에서''Jouni Koivuviita'의 주석입니다. 그는 워드 랩을 가능하게하는 사용자 정의 된 CSS 클래스를 참조하도록 제안합니다. Java : ''label2.addStyleName ("wrap");'', CSS :''.v-label-wrap {white-space : normal; }'' – PAX