1

2 台のモニターにテキストを表示するプログラムを作成しています。

現在、私の方法は、両方のモニターで LibGDX ウィンドウを起動し、それぞれを個別に制御することです。ただし、両方がフルスクリーンの場合、フォーカスできるウィンドウは 1 つだけです。焦点が合っていないウィンドウは非表示になります。これを解決するにはどうすればよいですか?

仕様:

  • ウィンドウズ10

  • Java 1.8

  • LibGDX 1.9.3、LWJGL 3 バックエンドを使用

コード:

  • ApplicationListener で:

    @Override
    public void show() throws RuntimeException {
       // Throws exception if it is set to go to monitor 1 and it does not exist
    
       if (external && Gdx.graphics.getMonitors().length < 2)
            throw new RuntimeException("Cannot extend to secondary monitor.");
    
        Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode(Gdx.graphics.getMonitors()[external ? 1 : 0]));
    }
    
  • 次に、ウィンドウを開くには:

    @Override
    public void openWindow(ApplicationListener a) {
       Lwjgl3WindowConfiguration config = new Lwjgl3WindowConfiguration();
    
       config.setTitle(title);
    
       config.setWindowListener(new Lwjgl3WindowListener() {
    
           @Override
           public void iconified() {}
    
           @Override
           public void focusLost() {}
    
           @Override
           public void focusGained() {}
    
           @Override
           public void filesDropped(String[] files) {}
    
           @Override
           public void deiconified() {}
    
           @Override
           public boolean closeRequested() { 
               return true;
           }
       });
    
       Lwjgl3Application app = (Lwjgl3Application) Gdx.app;
       window = app.newWindow(a, config);
       DesktopLauncher.openWindows.add(window);  // Used to close all windows later
    }
    

私はこれを間違った方法で見ていますか?ありがとう!

4

0 に答える 0