java - 在多个显示器上绘制叠加

标签 java swt desktop-application

我想在多个显示器上绘制覆盖图,它应该覆盖每个任务栏,基本上每个元素。我在4.5.2版本中使用SWT。

到目前为止我做了什么?

shell = new Shell(display.getActiveShell(), SWT.ON_TOP | SWT.DOUBLE_BUFFERED);
shell.setBounds(display.getBounds());

这个解决方案在我的 Debian (stretch) 上完美运行。 Windows 有问题,我测试了 Windows 10,它绘制了覆盖层,但任务栏位于顶部。

我考虑在 N 个显示器上激活全屏的 N 个独立 shell,但我认为不可能在多个 shell 上激活全屏。

有人有什么想法吗?也许我应该尝试使用其他库?

最佳答案

完全是吐痰,但是

Rectangle rect = new Rectangle(0, 0, 0, 0);
Stream.of(shell.getDisplay().getMonitors()).map(Monitor::getBounds).forEach(p->rect.add(p));
shell.setBounds(rect);

关于java - 在多个显示器上绘制叠加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36698635/

相关文章:

java - Spark sql 的 'no viable alternative at input' 是什么?

java - 我在这个 SWT 布局中做错了什么?

java - 调整对话框大小时如何调整对话框内子项的大小

Java 将字符串输入打印为数组,字符串中的每个单词都在新行上

java - 如何在 Spring Boot 中配置集成测试

java - 我可以在没有模拟器的情况下将 android 应用程序作为独立的桌面应用程序运行吗?

c# - 应用程序在空闲一段时间后卡住

C# 从sql server导出到excel

java - 星号-Java AGI。 DefaultAgiServer 在启动方法运行时卡住

eclipse - 如何在 jface 的 TableViewer 中使用 TreeNode