2011-08-08 4 views
2
나는 그런 코드로 복합에 위쪽 테두리를 그리려고

는 :
SWt : 컨트롤의 테두리 색은 무엇입니까?

final Composite c = new Composite(parent, SWT.NONE); 
     c.setLayout(new FormLayout()); 
     c.addPaintListener(new PaintListener(){ 

      @Override 
      public void paintControl(PaintEvent e) { 
       int x = c.getBounds().x; 
       int y = c.getBounds().y; 
       e.gc.setForeground(SWTResourceManager.getColor(0)); 
       e.gc.drawLine(x, y-23, x + c.getBounds().width, y-23); 
      } 

     }); 

하지만 어떻게 경계가 같은 모양 & 기본 테두리로 느낄 수있다 만들 수 있습니까? 어떻게하면 합성물의 오른쪽 Y 좌표를 얻을 수 있습니까?

복합체에 위쪽 테두리 만 있으면 좋을 다른 방법이 있습니까?

답변

1

1)

이을위한 3 개 복합 재료를 사용할 수 있습니다. 1 다른 2 개의 컴포지트가있는 컴포지트.

처럼 :

MainComposite (귀하의 정보가 배치되는)

  • CenterComposite
  • 2)

    (국경과 매우 작)

    • TopComposite

      내부 Composite에 대해 LayoutData를 사용할 수 있습니다. 정보. 하지만 상위와 하위에 상위 컴포지트가 표시됩니다.

      이클립스에서 UIForms에서보세요 :-)이 아닌 사소한 문제가

      • GridData.verticalIndent
      • GridData.heightHint
    1

    에서보세요 - 특히 org.eclipse.ui.forms.widgets.FormToolkit.BorderPainter ...

    1

    체크 Detect system settings snippet , 어떻게 시스템 색을 얻을 수 있는지 보여줍니다. 국경을 만들 것입니다 귀하의 경우에는

    Color borderColor = display.getSystemColor(SWT.COLOR_WIDGET_BORDER); 
    
    +0

    SWT.COLOR_WIDGET_NORMAL_SHADOW은 기본적으로 같다. – CaiNiaoCoder

    관련 문제