我正在创建一个 SWT 应用程序,但未能成功地在网上搜索一种将我的窗口捕捉到屏幕右侧的方法(以类似于谷歌桌面过去工作的方式)。
因此,如果开始菜单位于屏幕的右侧,它应该位于左侧,否则它可以直接捕捉到屏幕的右侧。
任何人都可以帮我解决这个问题吗?
使用以下方法在主 shell 上设置边界。
org.eclipse.swt.widgets.Display
public Monitor [] getMonitors ()
public Monitor getPrimaryMonitor ()
下面是一些利用 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(左侧开始菜单)上进行了测试。