我正在创建一个SWT应用程序,并且在网上搜索时未能成功搜索到将屏幕快照到屏幕右侧的方式(以类似于谷歌桌面用于工作的方式)。SWT - 将屏幕快照显示在屏幕右侧
所以如果开始菜单位于屏幕的右侧,它应该坐在它的左侧,否则它可以直接对准屏幕的右侧。
任何人都可以用我能做到的方式帮助我吗?
我正在创建一个SWT应用程序,并且在网上搜索时未能成功搜索到将屏幕快照到屏幕右侧的方式(以类似于谷歌桌面用于工作的方式)。SWT - 将屏幕快照显示在屏幕右侧
所以如果开始菜单位于屏幕的右侧,它应该坐在它的左侧,否则它可以直接对准屏幕的右侧。
任何人都可以用我能做到的方式帮助我吗?
下面是一些代码,利用由桑比发现的功能:
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(左开始菜单)。
美丽。它像一个魅力。非常感谢。 – Richie 2013-05-18 01:24:55
使用下面的方法来设置主外壳的边界。
org.eclipse.swt.widgets.Display
public Monitor [] getMonitors()
public Monitor getPrimaryMonitor()
+1好的发现... – Baz 2013-05-06 15:55:08
为什么Swing标签时你的问题与Swing无关? – 2013-05-06 03:52:25
我以为有人可能有摆动替代...对不起 – Richie 2013-05-06 10:02:04
@ user1600419对我的答案的任何反馈? – Baz 2013-05-09 08:27:31