Java 在不同的监视器上自动打开页面

Java 在不同的监视器上自动打开页面,java,screens,monitors,Java,Screens,Monitors,我正在设计一个紧急响应页面,它需要在3个不同的监视器上显示信息。第一个监视器将收集有关调用方的信息,然后包含2个链接。第一个链接需要在第二台显示器上显示不同的网页,第二个链接需要在第三台显示器上显示不同的网页 这可能吗 感谢您的帮助您可以使用target=“windowName”属性在其他窗口中打开链接 您必须手动设置这三个窗口,因此手动将它们分配到这三个屏幕。当您在窗口中再次打开链接时,它仍在同一屏幕上。请查看 (答案讨论GraphicsEnvironment.getLocalGraphics

我正在设计一个紧急响应页面,它需要在3个不同的监视器上显示信息。第一个监视器将收集有关调用方的信息,然后包含2个链接。第一个链接需要在第二台显示器上显示不同的网页,第二个链接需要在第三台显示器上显示不同的网页

这可能吗


感谢您的帮助

您可以使用target=“windowName”属性在其他窗口中打开链接

您必须手动设置这三个窗口,因此手动将它们分配到这三个屏幕。当您在窗口中再次打开链接时,它仍在同一屏幕上。

请查看


(答案讨论GraphicsEnvironment.getLocalGraphicsEnvironment()调用)

如果您确实希望将窗口锁定到特定的监视器,则需要实现此客户端。这是Java中的一个链接,因此您可以将其移动到适当的监视器,并根据需要最大化窗口。显然,您可以实现系统服务器端的其余部分,只在您创建的窗口中显示页面

第一个链接需要在第二台显示器上显示不同的网页,第二个链接需要在第三台显示器上显示不同的网页

虽然根据您的操作系统,可以控制窗口的显示位置,但通过HTTP/浏览器使用javascript/服务器端代码进行控制的选项要少得多

实现这一点的唯一合理方法是将显示器配置为更大显示器的平铺,而不是独立屏幕(对于*nix/BSD/Linux,请查看xinerama)

下面的代码保存了一个窗口的大小,并且只需要一些简单的更改就可以支持x/y偏移和多个窗口,至于如何区分这些窗口,我将留给您

一种更简单的方法是只使用一个带有边框与监视器对齐的框架的窗口

if (document.getElementById && !document.all) { // NOT for MSIE
    stickySizeOverloadOnload(stickySizeSetWindowSize);
    stickySizeOverloadOnresize(stickySizeSaveWindowSize);
}

function stickySizeSaveWindowSize(event)
{
    var expiry = new Date();
    var path = document.location.pathname;

    expiry.setDate(expiry.getDate()+500);
    stickySizeSetCookie('windowSize', window.outerWidth + ',' + window.outerHeight, expiry, path);
}

function stickySizeSetWindowSize()
{
    var saved=stickySizeGetCookie('windowSize');
    var parts=new Array();
    if (saved.length) {
    parts = saved.split(',');
    if ((parts[0]>100) && (parts[1]>100)) {
        window.outerWidth=parts[0];
        window.outerHeight=parts[1];
    } else {
        alert("invalid size - '" + saved + "'");
        stickySizeDeleteCookie('windowSize');
    }
}
}

function stickySizeOverloadOnload(func)
{
   var oldhandler=window.onload;
   if (typeof window.onload != "function") {
      window.onload=func;
   } else {
     window.onload=function(event) {
       oldhandler(event);
   func(event);
     }
   }
}
function stickySizeOverloadOnresize(func)
{
   var oldhandler=window.onresize;
   if (typeof window.onresize != "function") {
      window.onresize=func;
   } else {
      window.onresize=function(event) {
         oldhandler(event);
         func(event);
      }
   }
}

function stickySizeSetCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
  ((expires) ? "; expires=" + expires.toGMTString() : "") +
  ((path) ? "; path=" + path : "") +
  ((domain) ? "; domain=" + domain : "") +
  ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}
function stickySizeGetCookie(name) {
   var dc = document.cookie;
   var prefix = name + "=";
   var begin = dc.indexOf("; " + prefix);
   if (begin == -1) {
      begin = dc.indexOf(prefix);
      if (begin != 0) return null;
   } else
      begin += 2;
   var end = document.cookie.indexOf(";", begin);
   if (end == -1)
   end = dc.length;
   return unescape(dc.substring(begin + prefix.length, end));
}
function stickySizeDeleteCookie(name, path, domain) {
   if (stickySizeGetCookie(name)) {
      document.cookie = name + "=" +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        "; expires=Thu, 01-Jan-70 00:00:01 GMT";
   }
}

php页面还是java应用程序?您好symcbean,谢谢您的回复。不幸的是,我不太擅长javascript,所以理想情况下我需要一个“插件”解决方案。很抱歉这么厚颜无耻,但是你能帮我做一些简单的修改吗?另外,3将看起来有3台显示器都是相同的型号,分辨率可能是1600 x 900,所以如果我们能让代码围绕这一点工作,那就太好了