2014-04-10 2 views
0

gridlayout에서 작은 문제가 있습니다. 하나의 레이블과 텍스트가 한 행에 있으며 이고 다른 행은 다음 행에 있습니다. 두 번째 행에있는 레이블의 길이가 첫 번째 행의 첫 번째 레이블에있는 레이블보다 입니다. 이제 텍스트 필드 을 label1 근처의 첫 번째 행에 배치하려고합니다. labe2 에는 label1보다 높은 문자가 있으므로 길이의 label2를 사용합니다. 텍스트 필드가 레이블 1에 가까이 오지 않기 때문입니다. 텍스트 근처에 텍스트 입력란을 만들 수 있습니까?gridlayout에서 간격 문제가 발생했습니다.

아래의 코드를 찾아주세요 ..

package zx.example.hello; 

import org.eclipse.swt.SWT; 
import org.eclipse.swt.layout.GridData; 
import org.eclipse.swt.layout.GridLayout; 
import org.eclipse.swt.widgets.Display; 
import org.eclipse.swt.widgets.Label; 
import org.eclipse.swt.widgets.Shell; 
import org.eclipse.swt.widgets.Text; 

    public class GridLayoutExample { 

     public static void main(String[] args) { 
      Display display = new Display(); 
      Shell shell = new Shell(display); 
      GridLayout gridLayout = new GridLayout(); 
      gridLayout.numColumns = 2; 
      shell.setLayout(gridLayout); 

      GridData data1 = new GridData(); 
      Label label1 = new Label(shell, SWT.PUSH); 
      label1.setText("Label1"); 
      label1.setLayoutData(data1); 

      Text text1 = new Text(shell, SWT.BORDER); 
      text1.setText(""); 

      Label label2 = new Label(shell, SWT.PUSH); 
      label2.setText("Label 222222222222222222222222222222"); 
      /*Text text2 = new Text(shell, SWT.BORDER); 
      text2.setText("B4");*/ 

      shell.pack(); 
      shell.open(); 

      while (!shell.isDisposed()) { 
       if (!display.readAndDispatch()) 
        display.sleep(); 
      } 
     } 
    } 

답변

1

예,이 라인을 추가 할 수 있습니다 : 그것은 GridLayout의 두 열을 통해 두 번째 Label 스트레치를 만들 것입니다

label2.setLayoutData(new GridData(SWT.BEGINNING, SWT.TOP, true, true, 2, 1)); 

합니다.

관련 문제