1
SWT를 사용하여 간단한 디스플레이를 만들려고합니다. 지금까지 데이터베이스에서 정보를 성공적으로 표시하고 각 행에 GridLayout이 포함 된 RowLayout을 사용하여 표시했습니다. 그것은 다음과 같습니다 행이 윈도우의 전체 폭을 차지하기 위해 확장하는SWT 눈금 레이아웃 너비
는 내가 정말 원하는 것은. 이것을 어떻게 성취합니까?
도움 주셔서 감사합니다.
SWT를 사용하여 간단한 디스플레이를 만들려고합니다. 지금까지 데이터베이스에서 정보를 성공적으로 표시하고 각 행에 GridLayout이 포함 된 RowLayout을 사용하여 표시했습니다. 그것은 다음과 같습니다 행이 윈도우의 전체 폭을 차지하기 위해 확장하는SWT 눈금 레이아웃 너비
는 내가 정말 원하는 것은. 이것을 어떻게 성취합니까?
도움 주셔서 감사합니다.
이것을 달성하는 일반적인 방법은 GridData
을 사용하는 것입니다. 이 GridData
은 구성 요소에 부모 내에서 동작하는 방법을 알려줍니다 (예 : 부모에게 퍼지는 법. 사용하여
는 :
component.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
당신은 구성 요소가 수평으로 가능한 한 많은 공간을 차지하기 위해 말해 있지만 필요한 공간을 수직으로.
및 크기 조정 후 :
public class StackOverflow
{
public static void main(String[] args)
{
Display display = Display.getDefault();
Shell shell = new Shell(display);
/* GridLayout for the Shell to make things easier */
shell.setLayout(new GridLayout(1, false));
for(int i = 0; i < 5; i++)
{
createRow(shell, i);
}
shell.pack();
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
private static void createRow(Shell shell, int i)
{
/* GridLayout for the rows, two columns, equal column width */
Composite row = new Composite(shell, SWT.NONE);
row.setLayout(new GridLayout(2, true));
/* Make each row expand horizontally but not vertically */
row.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
/* Create the content of the row, expand horizontally as well */
Button first = new Button(row, SWT.PUSH);
first.setText("FIRST " + i);
first.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
Button second = new Button(row, SWT.PUSH);
second.setText("SECOND " + i);
second.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
}
}
이 그것을 시작 후 모습입니다 : 여기
당신이 그것을 기대하는 방식으로 행동해야 작은 예입니다사이드 노트 : 아직 읽지 않았다면 레이아웃에 대한 Eclipse에서 this 튜토리얼 읽기를 제안합니다. 모든 SWT 개발자는 그것을 읽어야합니다.
도움 주셔서 감사합니다. 크기가 다른 열과 함께 동일한 기능을 어떻게 얻을 수 있습니까? –
나는 중첩 된 격자 레이아웃을 사용하여 내가 본 모양을 대략적으로 표현했습니다. 다시 한번 감사드립니다. –