使用java,我创建了一个shell,然后在shell中打开浏览器,我想将shell移动到屏幕的右上角。我正在尝试使用setBound函数,但它无法正常工作..如何找到右上方屏幕的坐标。 如何将shell设置为特定位置 代码:
{
final Shell shell = new Shell();
shell.setLayout(new FillLayout());
Browser browser = new Browser(shell, SWT.NONE);
browser.setBounds( x, y, 200 ,200);
}
答案 0 :(得分:0)
您可以通过获取Monitor
:
final Monitor monitor = Display.getCurrent().getPrimaryMonitor();
final Rectangle monitorBounds = monitor.getBounds();
final Point topRight = new Point(monitorBounds.x + monitorBounds.width, monitorBounds.y);
如果您想要考虑多个监视器,可以使用Display#getMonitors()
,并实施一些逻辑来选择您关注的Monitor
。
您正准备定位Shell
。您可以使用上面的topRight
Point
,然后减去Shell
的宽度以将其保留在屏幕上。或者,您可以使用Shell#setLocation(Point)
方法。
例如:
public class ShellLocationTest {
private final Display display;
private final Shell shell;
public ShellLocationTest() {
display = new Display();
shell = new Shell(display, SWT.NONE);
final Point shellSize = new Point(400, 200);
shell.setSize(shellSize);
shell.setLayout(new FillLayout());
final Rectangle monitorBounds = display.getPrimaryMonitor().getBounds();
final Point shellLocation = new Point(monitorBounds.x + monitorBounds.width - shellSize.x, monitorBounds.y);
shell.setLocation(shellLocation);
}
public void run() {
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
public static void main(String... args) {
new ShellLocationTest().run();
}
}