예는 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;
}
}
제목 영역 코드를 허용하는 특정 크기가 있는가?
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
의 세부 사항을 변경하는 방법을 설명가. 어쩌면 그것들을 읽을지도 모른다.
출처
2012-10-19 14:48:14
Baz
좋아, 그럼 이미지가 완전히 표시되지 않습니다? 이미지를 업로드 할 수 있습니까? – Baz