Is there a built-in way to make the JME window resizable (including Linux multi-monitor fullscreen)?

I can already accomplish this with the Swing canvas, but, that has several issues (ie. Nifty doesn’t like it, causes guiNode problems). The main two reasons for using the Swing canvas in my case are:

  1. To ensure that the window can be resized
  2. To ensure that fullscreen can be accomplished on Linux with a multi-monitor setup. To be clear, I don’t mean fullscreen spanning all monitors but rather fullscreen on one monitor.

Is it possible to make these things work with the JME/LWJGL window, or do I need to use the Swing canvas? If so, how can I make it’s guinode work how it should?

Just set the following setting value and the window will be re-sizable.

If you never used appsetings before here is an example.

AppSettings appSettings = new AppSettings(true);
SimpleApplication app = new SimpleApplication();
app .setSettings(appSettings);

Thanks, this solves the resizing issue. Is there some way to fix fullscreen as well?

If you mean you want the user to be able to achieve full screen mode on any monitor then you will have to do a bit of work. The way I do it is I remove the window decorations from the JME window, Find out what the user’s maximum screen size is and give them an option to switch to full screen in game. Once they select the option I disable re-sizing and switch to their monitor’s max resolution. It’'s a fake full screen mode but will allow you to simulate full screen on any monitor. You take a VERY SMALL performance hit compared to real full screen mode but it’s negligible.

To disable window decorators use this line of code:
System.setProperty(“org.lwjgl.opengl.Window.undecorated”, “true”);

On linux just place the cursor on the screen directlyx after start, the full screen should appear there then.

Anyway I recommend the fake windows more, they are in most cases easier for the user if they multi task and more stable with different setups.