-3

我正在创建一个 SWT 应用程序,但未能成功地在网上搜索一种将我的窗口捕捉到屏幕右侧的方法(以类似于谷歌桌面过去工作的方式)。

因此,如果开始菜单位于屏幕的右侧,它应该位于左侧,否则它可以直接捕捉到屏幕的右侧。

任何人都可以帮我解决这个问题吗?

4

2 回答 2

3

使用以下方法在主 shell 上设置边界。

org.eclipse.swt.widgets.Display

public Monitor [] getMonitors ()

public Monitor getPrimaryMonitor ()
于 2013-05-06T14:54:40.217 回答
1

下面是一些利用 sambi 找到的函数的代码:

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

    Monitor primary = display.getPrimaryMonitor();

        /* Get the available screen size (without start menu) */
    Rectangle area = primary.getClientArea();

    shell.pack();
    /* Set the shell size */
    shell.setBounds(area.x + area.width / 2, area.y, area.width / 2, area.height);
    shell.open();
    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

在 Linux(左侧和底部面板)和 Windows 7(左侧开始菜单)上进行了测试。

于 2013-05-06T06:35:16.590 回答