Java SWT shell标题/标题栏的高度

时间:2014-05-13 17:03:10

标签: java swt metrics titlebar

如何确定Java SWT应用程序应用程序中应用程序窗口标题栏的高度?

由于Java与平台无关,我需要找到Java方式。

作为一个附带问题,标题/标题栏高度信息是否与其他系统/窗口指标位于同一位置?

我尝试搜索“标题栏”和“标题栏”,只是没有看到任何内容。

1 个答案:

答案 0 :(得分:2)

你基本上想要计算"界限"之间的高度差。您的Shell和"客户区" Shell

public static void main(String args[])
{
    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("StackOverflow");
    shell.setLayout(new FillLayout());

    Button button = new Button(shell, SWT.PUSH);
    button.setText("Calculate");
    button.addListener(SWT.Selection, new Listener()
    {
        @Override
        public void handleEvent(Event arg0)
        {
            Rectangle outer = Display.getCurrent().getActiveShell().getBounds();
            Rectangle inner = Display.getCurrent().getActiveShell().getClientArea();

            System.out.println(outer.height - inner.height);
        }
    });

    shell.pack();
    shell.setSize(400, 200);
    shell.open();
    while (!shell.isDisposed())
    {
        if (!shell.getDisplay().readAndDispatch())
            shell.getDisplay().sleep();
    }
}

将在运行Linux Mint的笔记本电脑上打印31(px)。