2012-10-19 2 views
4

제목 영역에 배치 할 이미지를 만듭니다. 이미지의 1/4 만 표시된다는 점을 제외하면 모두 작동합니까? 제목 영역 여기TitleAreaDialog - 제목 이미지 조정

에 아이콘 그래서 지금 만 JKT이 표시되어있는 create() 메소드

한다 - JKTeater은 [] < :

내 이미지는 텍스트와 이미지를 하나 개의 이미지에서 EX를 결합 실제로

public void create() { 
    super.create(); 
    setTitle("JKTeater Application"); 
    setMessage("Hello World"); 
    if (image != null) setTitleImage(image); 

} 
  1. 제목 영역 코드에서 허용되는 특정 크기가 있습니까?
  2. 제목 영역의 끝에 이미지의 끝을 배치 할 수있는 방법이 있습니까?
  3. 레이아웃을 사용하여 주변을 이동할 수 있습니까?
  4. 제목 영역의 하단에 검은 가로선이 표시되게하려면 어떻게해야합니까?

편집

enter image description here

나는 당신이 실제로 그라데이션에 기본 색상 배경 ​​색상을 변경할 수 있는지 확인하기 위해 많은에 요구 될 것이라고 확신

+0

좋아, 그럼 이미지가 완전히 표시되지 않습니다? 이미지를 업로드 할 수 있습니까? – Baz

답변

3

예는 TitleAreaDialog입니다. 당신이 볼 수 있듯이, Image 완전히 오른쪽에 표시 및 정렬 :

public static void main(String[] args) { 
    final Shell shell = new Shell(); 
    shell.setLayout(new FillLayout()); 

    TitleAreaDialog dialog = new MyTitleAreaDialog(shell); 
    dialog.setTitleAreaColor(Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND).getRGB()); 
    dialog.open(); 
} 

private static class MyTitleAreaDialog extends TitleAreaDialog 
{ 
    private Image image; 

    public MyTitleAreaDialog(Shell parentShell) { 
     super(parentShell); 
     image = new Image(Display.getDefault(), "/home/baz/Desktop/StackOverflow.png"); 
    } 

    @Override 
    public boolean close() { 
     if (image != null) 
      image.dispose(); 
     return super.close(); 
    } 

    @Override 
    protected Control createContents(Composite parent) { 
     Control contents = super.createContents(parent); 

     setTitle("Title"); 
     setMessage("Message"); 

     if (image != null) 
      setTitleImage(image); 

     return contents; 
    } 

    @Override 
    protected Control createDialogArea(Composite parent) { 
     Composite composite = (Composite) super.createDialogArea(parent); 

     // YOUR LINE HERE! 
     Label line = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL); 
     line.setLayoutData(new GridData(SWT.FILL, SWT.END, true, true)); 

     return composite; 
    } 
} 

enter image description here

제목 영역 코드를 허용하는 특정 크기가 있는가?

AFAIK 크기에는 제한이 없습니다. 내 화면 해상도보다 큰 Image을 사용해 보았는데 완전히 표시되었습니다. 그러나 Dialog은 분명히 사용할 수 없었습니다.

나는이에 (당신이 실제로 그라데이션

에 기본 색상 배경 ​​색상을 변경할 수있는 경우 배경 색상이 dialog.setTitleAreaColor(RGB)을 사용하여 변경할 수 있습니다 볼 훨씬에 요구 될 것이라고 확신 경우 위젯 배경색),하지만 당신은 그라디언트를 사용할 수 없습니다. 제목 영역 Composite을 반환하는 사용되지 않는 방법 getTitleArea()이 있지만 실제로 사용하지 않는 것이 좋습니다.

제목 영역 하단에 검은 가로선이 표시되게하려면 어떻게해야합니까?

하단의 라인을 사용하여 달성되었다 :

Label line = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL); 
line.setLayoutData(new GridData(SWT.FILL, SWT.END, true, true)); 

당신이 주위를 이동하는 레이아웃을 사용할 수 있습니까?

여기에 비슷한 질문이있다 :

Moving an image of a TitleAreaDialog to the left

답변 거기 TitleAreaDialog의 세부 사항을 변경하는 방법을 설명가. 어쩌면 그것들을 읽을지도 모른다.

+0

다른 질문을하는 대신 여기에서 묻습니다. 위는 컸다!! setTitle ("Hello")의 글꼴을 변경할 수 있습니까? – jkteater