User interface JFace应用程序窗口窗口顶部的白线
我创建了我能想到的最基本的JFace应用程序窗口,屏幕顶部有一个1像素的白色边框: 以及创建它的代码: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.
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本身是如何避免出现这条白线的?