注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

隐龙 为了一生的信念

今日默默沉于水,他日飞腾在九天...

 
 
 

日志

 
 

可恶,终于找到去掉 jface menubar下面的分隔线  

2012-09-19 16:01:27|  分类: 开发工具 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在玩jface的时候,仔细观察,我们就可以发现,我们自己的主窗口,在menubar下面有一条不起眼的线条,分隔开menubar与下面的内容,即使是窗口上什么也没有,这条线仍然存在,很是奇怪。为什么用 swt 创建的没有这条线,Eclipse IDE 本身也没有这条线,为什么用jface创建的主窗口,就有这条线呢?而且这条线看着很不舒服!!!!

这时候就想办法去掉这个玩意.....

第一想到的就是这条线可能是menubar或是coolbar或是toolbar,再或者是shell产生的,然后疯狂找各种控件的属性设置,结果一无所获。

第二,开始分析 “ApplicationWindow”  这个类,是不是在这里面处理的?

在里面找到 “configureShell”  这个方法:配置 shell,里面调用了一个方法:“createTrimWidgets”  --- 创建并装饰 widgets ,应该是在这里,代码如下:

protected void createTrimWidgets(Shell shell) {
        if (menuBarManager != null) {
            menuBarManager.updateAll(true);
            shell.setMenuBar(menuBarManager.createMenuBar((Decorations) shell));
        }

        if (showTopSeperator()) {
   seperator1 = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
  }

        // will create either a cool bar or a tool bar
        createToolBarControl(shell);
        createCoolBarControl(shell);
        createStatusLine(shell);
    }

在menubar和下面的 toolbar,coolbar,statusline之间加了一条线。搞不懂为什么要这个!

继续看这个 “showTopSeperator()” 这个方法,这是一个判断。

代码:

 /**
     * Returns whether to show a top separator line between the menu bar
     * and the rest of the window contents.  On some platforms such as the Mac,
     * the menu is separated from the main window already, so a separator line
     * is not desired
.
     *
     * @return <code>true</code> to show the top separator, <code>false</code>
     *   to not show it
     * @since 3.0
     */

 protected boolean showTopSeperator() {
        return !"carbon".equals(SWT.getPlatform()); //$NON-NLS-1$
    }

奶奶的,原来如此(红色部分)。害得我好些次看到这条线,就没有睡好觉。

不过,开发者是为了让程序在各种平台下保持一样的外观,这种精神可嘉,只是应该说明一下(如:放在属性里配置)。

知道怎么来的了,就知道怎么做了,重写此方法,return false ;                   就可以得到和Eclipse IDE 一样的外观效果了。

  评论这张
 
阅读(615)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018