2013-05-06 150 views
-3

我正在创建一个SWT应用程序,并且在网上搜索时未能成功搜索到将屏幕快照到屏幕右侧的方式(以类似于谷歌桌面用于工作的方式)。SWT - 将屏幕快照显示在屏幕右侧

所以如果开始菜单位于屏幕的右侧,它应该坐在它的左侧,否则它可以直接对准屏幕的右侧。

任何人都可以用我能做到的方式帮助我吗?

+2

为什么Swing标签时你的问题与Swing无关? – 2013-05-06 03:52:25

+0

我以为有人可能有摆动替代...对不起 – Richie 2013-05-06 10:02:04

+0

@ user1600419对我的答案的任何反馈? – Baz 2013-05-09 08:27:31

回答

1

下面是一些代码,利用由桑比发现的功能:

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(左开始菜单)。

+0

美丽。它像一个魅力。非常感谢。 – Richie 2013-05-18 01:24:55

3

使用下面的方法来设置主外壳的边界。

org.eclipse.swt.widgets.Display 

public Monitor [] getMonitors() 

public Monitor getPrimaryMonitor() 
+0

+1好的发现... – Baz 2013-05-06 15:55:08