@Override
    public void simpleInitApp() {
        flyCam.setDragToRotate(true);
        int numMonitors = 1;

        // If monitor is define, Jme supports multiple monitors. Setup to keys
        if (monitors == null) {
            inputManager.addMapping("down", new KeyTrigger(KeyInput.KEY_DOWN));
            inputManager.addMapping("fullscreen", new KeyTrigger(KeyInput.KEY_F));
            inputManager.addListener(this, "down", "fullscreen");
        }

        // Get the selected monitor
        monitorSelected = settings.getDisplay();
        monitors = context.getDisplays();
        if (monitors != null) numMonitors = monitors.size();

        // Let's define the labels for users to see what is going on with Multiple
        // Monitor
        String labelValue = "";
        labelValue = "There are " + numMonitors + " monitor(s) hooked up to this computer.";
        txt = new BitmapText(loadGuiFont());
        txt.setText(labelValue);
        txt.setLocalTranslation(0, settings.getHeight(), 0);
        guiNode.attachChild(txt);

        txt = new BitmapText(loadGuiFont());
        if (!settings.isFullscreen()) txt.setText(
            "Window is on Monitor N/A (fullscreen only feature)"
        ); else txt.setText("Window is on Monitor " + settings.getDisplay());

        txt.setLocalTranslation(0, settings.getHeight() - 40, 0);
        guiNode.attachChild(txt);

        if (monitors != null) {
            selectedMonitorTxt = new BitmapText(loadGuiFont());
            // Lets display information about selected monitor
            String label =
                "Selected Monitor " +
                "Name: " +
                monitors.get(settings.getDisplay()).getName() +
                " " +
                monitorSelected +
                " Res: " +
                monitors.get(settings.getDisplay()).getWidth() +
                "," +
                monitors.get(settings.getDisplay()).getHeight() +
                " refresh: " +
                monitors.get(settings.getDisplay()).getRate();
            selectedMonitorTxt.setText(label);
            selectedMonitorTxt.setLocalTranslation(0, settings.getHeight() - 80, 0);
            guiNode.attachChild(selectedMonitorTxt);

            // Let's loop through all the monitors and display on the screen
            for (int i = 0; i < monitors.size(); i++) {
                DisplayInfo monitor = monitors.get(i);
                labelValue =
                    "Mon : " +
                    i +
                    " " +
                    monitor.getName() +
                    " " +
                    monitor.getWidth() +
                    "," +
                    monitor.getHeight() +
                    " refresh: " +
                    monitor.getRate();
                txt = new BitmapText(loadGuiFont());
                txt.setText(labelValue);
                txt.setLocalTranslation(0, settings.getHeight() - 160 - (40 * i), 0);
                guiNode.attachChild(txt);
            }
        }

        // Lets put a label up there for FullScreen/Window toggle
        fullScreenTxt = new BitmapText(loadGuiFont());
        if (!settings.isFullscreen()) fullScreenTxt.setText("(f) Window Screen"); else fullScreenTxt.setText(
            "(f) Fullscreen"
        );

        fullScreenTxt.setLocalTranslation(00, settings.getHeight() - 240, 0);
        guiNode.attachChild(fullScreenTxt);

        BitmapText infoTxt = new BitmapText(loadGuiFont());
        infoTxt.setText("Restart is required to activate changes in settings.");
        infoTxt.setLocalTranslation(0, settings.getHeight() - 300, 0);
        guiNode.attachChild(infoTxt);
    }
Tests the capability to change which monitor the window will be created on.
Also, shows that you can force JME to center the window. Also, it shows to to
force JME to set the window to x,y coords. Center window and window position
doesn't apply if in fullscreen.

@author Kevin Bales
jme3-examples/src/main/java/jme3test/app/TestMonitorApp.java