以下是一個示例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)
改變(在此大小寫背景顏色),但不能使用漸變。有一個已棄用的方法getTitleArea()
這將返回標題區Composite
,但我真的不會推薦使用。
如何在標題區域的底部獲得黑色的橫線?
在底部的線條是通過使用來實現:
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