package com.haxademic.sketch.system; import java.awt.AWTEvent; import java.awt.GraphicsEnvironment; import java.awt.Rectangle; import java.awt.Toolkit; import java.awt.event.AWTEventListener; import com.haxademic.core.app.P; import com.haxademic.core.app.PAppletHax; import com.haxademic.core.app.config.AppSettings; import com.haxademic.core.app.config.Config; import com.haxademic.core.math.MathUtil; public class ScreenSizeChangeTest extends PAppletHax { public static void main(String args[]) { arguments = args; PAppletHax.main(Thread.currentThread().getStackTrace()[1].getClassName()); } protected Rectangle screenSize; protected void config() { Config.setProperty( AppSettings.SHOW_DEBUG, true ); } protected void firstFrame() { GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); screenSize = ge.getMaximumWindowBounds(); Toolkit toolkit = Toolkit.getDefaultToolkit(); toolkit.addAWTEventListener(new AWTEventListener() { @Override public void eventDispatched(AWTEvent event) { // take a look at http://stackoverflow.com/questions/10123735/get-effective-screen-size-from-java Rectangle newSize = ge.getMaximumWindowBounds(); if (newSize.width != screenSize.width || newSize.height != screenSize.height) { screenSize.setSize(newSize.width, newSize.height); resize(); } } }, AWTEvent.PAINT_EVENT_MASK); } protected void resize() { P.println("Screen resized"); } protected void drawApp() { background(0); if(p.frameCount % 120 == 0) { p.getSurface().setLocation(0, 0); p.getSurface().setSize(p.width, p.height + MathUtil.randRange(-10, 10)); } // DebugView.setValue("screenSize.width", screenSize.width); // DebugView.setValue("screenSize.height", screenSize.height); // DebugView.setValue("displayWidth", displayWidth); // DebugView.setValue("displayHeight", displayHeight); // if(p.frameCount % 300 == 0) { // DebugView.setValue("Toolkit.getDefaultToolkit().getScreenSize().width", Toolkit.getDefaultToolkit().getScreenSize().width); // DebugView.setValue("Toolkit.getDefaultToolkit().getScreenSize().height", Toolkit.getDefaultToolkit().getScreenSize().height); // } } }