Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/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
User interface JFace应用程序窗口窗口顶部的白线_User Interface_Swt_Jface_Applicationwindow - Fatal编程技术网

User interface JFace应用程序窗口窗口顶部的白线

User interface JFace应用程序窗口窗口顶部的白线,user-interface,swt,jface,applicationwindow,User Interface,Swt,Jface,Applicationwindow,我创建了我能想到的最基本的JFace应用程序窗口,屏幕顶部有一个1像素的白色边框: 以及创建它的代码: import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.

我创建了我能想到的最基本的JFace应用程序窗口,屏幕顶部有一个1像素的白色边框:

以及创建它的代码:

import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.SWT;

public class TestWindow extends ApplicationWindow {
    public TestWindow() {
        super(null);
    }

    protected Control createContents(Composite parent) {
        this.getShell().setText("Test Window");

        parent.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_GREEN));
        return parent;
    }
}

当我向窗口添加额外的
Composite
控件时,差距变得更大。我能做些什么来摆脱它?

您可以尝试覆盖该函数:

protected boolean showTopSeperator() {
    return false;
}

我不知道你是否还在寻求帮助,但你所要做的就是添加

this.seperator1.dispose();

在createContents(复合)方法中。看一下,我发现分隔符实际上只是一个(拼写错误的)标签:separator1

如果我这样做,它确实会删除该行。但是,只要我在shell中添加一个
组合
,该行就会重新出现。看起来问题是
应用程序窗口
内部的。如果您查看ApplicationWindow.java,您将看到一个内部
ApplicationWindowLayout
类,它具有
static final int VGAP=2
添加到我添加的每个顶级控件的
y
位置,从而在外壳顶部添加一条非感官白线。我想知道,Eclipse本身是如何避免出现这条白线的?