Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TitleReadialog-调整标题图像_Java_Dialog_Swt_Jface_Titleareadialog - Fatal编程技术网

Java TitleReadialog-调整标题图像

Java TitleReadialog-调整标题图像,java,dialog,swt,jface,titleareadialog,Java,Dialog,Swt,Jface,Titleareadialog,因此,我创建了一个图像放置在标题区。除了只显示图像的1/4外,所有功能都正常工作 我的图像实际上是文本和图像组合在一个图像中,例如:jktater[]下面是一个示例titlearealog。如您所见,图像完全显示并向右对齐: public static void main(String[] args) { final Shell shell = new Shell(); shell.setLayout(new FillLayout()); TitleAreaDialog

因此,我创建了一个图像放置在标题区。除了只显示图像的1/4外,所有功能都正常工作


我的图像实际上是文本和图像组合在一个图像中,例如:jktater[]下面是一个示例
titlearealog
。如您所见,
图像
完全显示并向右对齐:

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;
    }
}

标题区号是否允许特定的尺寸

好的,尺寸没有限制。我尝试使用比我的屏幕分辨率大的
图像
,它被完全显示出来。不过,
对话框
显然无法使用

我敢肯定,如果你真的能把背景色从基本色改成渐变色,那就太麻烦了

可以使用
对话框更改背景色。setTitleAreaColor(RGB)
(在本例中为小部件背景色),但不能使用渐变。有一种不推荐使用的方法,它将返回标题区
Composite
,但我真的不建议使用这种方法

如何在标题区域底部获得黑色水平线

底部的线条是通过以下方式实现的:

Label line = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
line.setLayoutData(new GridData(SWT.FILL, SWT.END, true, true));
你能用一个布局来移动它吗

这里有一个类似的问题:


这里的答案解释了如何更改
标题readialog
的详细信息。也许可以读一下。

好的,你的图像没有完全显示出来?你也可以上传图片吗?我会在这里问这个问题,而不是开始另一个问题。以上是伟大的!!你能改变setTitle(“Hello”)的字体吗;
Label line = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
line.setLayoutData(new GridData(SWT.FILL, SWT.END, true, true));