如何在Java SWT shell窗口中获取菜单栏控件的高度?
似乎不同的操作系统在shell窗口顶部的菜单栏有不同的高度。因此,如果我能够获得菜单栏的确切高度,那将会很棒。菜单API没有getSize()。
答案 0 :(得分:3)
您可以使用/*public*/ Rectangle getBounds ()
的{{1}}。但问题是该方法具有默认可访问性。它的签名表明它曾经是史前时期的org.eclipse.swt.widgets.Menu
。无论如何,可以有很多方法来解决你的问题:
public
和减去 height of the shell
和height of title area
。问题是 height of client area
how to find the title area height?
的帮助下使用上述API。有关详细信息,请参阅以下代码。特别是 Reflection
方法。 static int getMenuHeight(Menu parent)
父 Note:
参数应为最高且可见菜单实例。因为,在某些操作系统上,隐藏的子菜单是即时创建的。此外,API在Vista机器上进行测试,使用SUN JDK 1.6_b18运行eclipse 3.62。
<强> Menu
强>
>>Code:
答案 1 :(得分:-2)
要获得此功能,您将获得菜单栏和标题栏的高度,并减去标题栏的高度。
int menuTitleHeight = x.getWindow().getHeight() - x.getWindow().getContentPane().getHeight();
int titleHeight = x.getWindow().getHeight() - x.getWindow().getRootPane().getHeight();
int menuHeight = x.getWindow().getHeight() - x.getWindow().getRootPane().getHeight();